From b64985349eaf8c3a189558c325baaa0e98d99ed9 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Mon, 28 Oct 2019 22:49:02 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/controllers/MiscController.js | 1 - server/core/AppLogger.js | 49 ++++++++++++++++++++++++++++ server/core/ReaderWorker.js | 2 +- server/core/getLogger.js | 40 ----------------------- server/db/connManager.js | 2 +- server/dev.js | 2 +- server/index.js | 6 ++-- 7 files changed, 55 insertions(+), 47 deletions(-) create mode 100644 server/core/AppLogger.js delete mode 100644 server/core/getLogger.js diff --git a/server/controllers/MiscController.js b/server/controllers/MiscController.js index 2e10f188..84385462 100644 --- a/server/controllers/MiscController.js +++ b/server/controllers/MiscController.js @@ -1,5 +1,4 @@ const BaseController = require('./BaseController'); -const log = require('../core/getLogger').getLog(); const _ = require('lodash'); class MiscController extends BaseController { diff --git a/server/core/AppLogger.js b/server/core/AppLogger.js new file mode 100644 index 00000000..7d0cafdd --- /dev/null +++ b/server/core/AppLogger.js @@ -0,0 +1,49 @@ +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; + } + + init(config) { + if (this.inited) + throw new Error('already inited'); + + let loggerParams = null; + + if (config.loggingEnabled) { + fs.ensureDirSync(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) + return this._logger; + throw new Error('not inited'); + } + + get log() { + const l = this.logger; + return l.log.bind(l); + } +} + +module.exports = AppLogger; diff --git a/server/core/ReaderWorker.js b/server/core/ReaderWorker.js index 0d9a38b4..1707692a 100644 --- a/server/core/ReaderWorker.js +++ b/server/core/ReaderWorker.js @@ -6,7 +6,7 @@ const FileDownloader = require('./FileDownloader'); const FileDecompressor = require('./FileDecompressor'); const BookConverter = require('./BookConverter'); const utils = require('./utils'); -const log = require('./getLogger').getLog(); +const log = new (require('./AppLogger'))().log;//singleton let singleCleanExecute = false; diff --git a/server/core/getLogger.js b/server/core/getLogger.js deleted file mode 100644 index ed17b6fd..00000000 --- a/server/core/getLogger.js +++ /dev/null @@ -1,40 +0,0 @@ -const fs = require('fs-extra'); -const Logger = require('./Logger'); - -let logger = null; - -function initLogger(config) { - if (logger) - logger.close(); - - let loggerParams = null; - - if (config.loggingEnabled) { - fs.ensureDirSync(config.logDir); - loggerParams = [ - {log: 'ConsoleLog'}, - {log: 'FileLog', fileName: `${config.logDir}/${config.name}.log`}, - ]; - } - - logger = new Logger(loggerParams); - - return logger; -} - -function getLogger() { - if (logger) - return logger; - throw new Error('getLogger error: logger not initialized'); -} - -function getLog() { - const l = getLogger(); - return l.log.bind(l); -} - -module.exports = { - initLogger, - getLogger, - getLog, -}; \ No newline at end of file diff --git a/server/db/connManager.js b/server/db/connManager.js index e5fbf3f9..ec09c204 100644 --- a/server/db/connManager.js +++ b/server/db/connManager.js @@ -1,7 +1,7 @@ const fs = require('fs-extra'); const SqliteConnectionPool = require('./SqliteConnectionPool'); -const log = require('../core/getLogger').getLog(); +const log = new (require('../core/AppLogger'))().log;//singleton const migrations = { 'app': require('./migrations/app'), diff --git a/server/dev.js b/server/dev.js index 7782d385..1ae2dfbd 100644 --- a/server/dev.js +++ b/server/dev.js @@ -1,4 +1,4 @@ -const log = require('./core/getLogger').getLog(); +const log = new (require('./core/AppLogger'))().log;//singleton function webpackDevMiddleware(app) { const webpack = require('webpack'); diff --git a/server/index.js b/server/index.js index a9ba67c2..9f51979d 100644 --- a/server/index.js +++ b/server/index.js @@ -1,7 +1,7 @@ const config = require('./config'); -const logger = require('./core/getLogger'); -logger.initLogger(config); -const log = logger.getLog(); +const appLogger = new (require('./core/AppLogger'))();//singleton +appLogger.init(config); +const log = appLogger.log; const configSaver = require('./config/configSaver'); const argv = require('minimist')(process.argv.slice(2));