Integration with Module Manager
The Logger class works well with @versionzero/module-manager for configuration and dependency injection:
import { ModuleManager } from '@versionzero/module-manager';
import { Logger } from '@versionzero/logger';
class WelcomeApp {
static moduleInfo = {
name: 'Welcome',
configurables: [
{field: 'logger', type: 'Logger', required: true},
{field: 'message', default: 'whoops'}
]
};
async main() {
this.logger.notice(`a message for you.... ${this.message}`);
}
}
const moduleManager = new ModuleManager();
moduleManager.registerModule(Logger);
moduleManager.registerModule(WelcomeApp);
await moduleManager.run( { argv: ['--logger-level', 'info', '--logger-format=text', '--message', 'hello world']})