12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- const fs = require('fs-extra');
- const Logger = require('./Logger');
- let instance = null;
- //singleton
- class AppLogger {
- constructor() {
- if (!instance) {
- instance = this;
- }
- this.inited = false;
- return instance;
- }
- async init(config) {
- if (this.inited)
- throw new Error('already inited');
- let loggerParams = null;
- if (config.loggingEnabled) {
- await fs.ensureDir(config.logDir);
- loggerParams = [
- {log: 'ConsoleLog'},
- {log: 'FileLog', fileName: `${config.logDir}/${config.name}.log`},
- ];
- }
- this._logger = new Logger(loggerParams);
- this.inited = true;
- return this.logger;
- }
- get logger() {
- if (!this.inited)
- throw new Error('not inited');
- return this._logger;
- }
- get log() {
- const l = this.logger;
- return l.log.bind(l);
- }
- }
- module.exports = AppLogger;
|