interface ILogger { log ( message ) : void ; warn ( message , error ? ) : void ; error ( message , error ? ) : void ; } let loggingEnabled = false ; class ConsoleLogger implements ILogger { log ( message ) { if ( loggingEnabled ) { console . log ( message ) ; } } warn ( message , error ? ) { if ( loggingEnabled ) { console . warn ( message , error ) ; } } error ( message , error ? ) { if ( loggingEnabled ) { console . error ( message , error ) ; } } } export function enableLogging ( ) { loggingEnabled = true ; } export function getLogger ( name ) { return new ConsoleLogger ( ) ; }