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