export interface Logger { info(msg: string): void; error(msg: string): void; } export interface LoggerFactory { (name: string): Logger; } export function defaultLoggerFactory(name: string): Logger { console.log(`logging ${name} to console`); return console; }