Logging Extensibility

Implemented a disconnected ILogger framework, allowing for the extensiblity of using any 3rd party logging framework by implementing two small interfaces.