Logging - workaround for lack of multiple implementation inheritence

Moved the common code to C
Pros : look at the imports
Cons : needs methods to be public
Adding new logging methods is as simple as adding to Logging, then
implementing in C then delegate from implementations to C