瀏覽代碼

Рефакторинг

Book Pauk 5 年之前
父節點
當前提交
b64985349e

+ 0 - 1
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 {

+ 49 - 0
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;

+ 1 - 1
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;
 

+ 0 - 40
server/core/getLogger.js

@@ -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,
-};

+ 1 - 1
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'),

+ 1 - 1
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');

+ 3 - 3
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));