Преглед изворни кода

全局ELog改为按需加载

gaoshuaixing пре 4 година
родитељ
комит
00004e6e85
7 измењених фајлова са 56 додато и 32 уклоњено
  1. 8 7
      electron/api.js
  2. 1 1
      electron/apis/base.js
  3. 3 2
      electron/autoUpdater.js
  4. 1 1
      electron/lib/AutoLaunch.js
  5. 35 0
      electron/lib/eLogger.js
  6. 2 18
      electron/setup.js
  7. 6 3
      main.js

+ 8 - 7
electron/api.js

@@ -5,6 +5,7 @@ const path = require('path');
 const _ = require('lodash');
 const storage = require('./storage');
 const socketIo = require('socket.io');
+const eLogger = require('./lib/eLogger').get();
 
 const apis = {};
 
@@ -13,12 +14,12 @@ exports.setup = async function () {
 
   // use api server
   let port = await storage.setIpcDynamicPort();
-  ELog.info('[api] [setup] dynamic port:', port);
+  eLogger.info('[api] [setup] dynamic port:', port);
   const listen = 'localhost';
   port = port ? port : 7069;
 
   const server = http.createServer(function(req, res) {
-    ELog.info('[ api ] [setup] command received', { method: req.method, url: req.url });
+    eLogger.info('[ api ] [setup] command received', { method: req.method, url: req.url });
     if ((req.method === 'POST' && req.url === '/send')) {
       let body = '';
       req.setEncoding('utf8');
@@ -35,12 +36,12 @@ exports.setup = async function () {
           return res.end('request body parse failure.');
         }
         if (!apis[message.cmd]) {
-          ELog.info('[ api ] [setup] invalid command called:', message.cmd);
+          eLogger.info('[ api ] [setup] invalid command called:', message.cmd);
           res.statusCode = 404;
           return res.end('NG');
         }
 
-        ELog.info('[ api ] [setup] command received message:', message);
+        eLogger.info('[ api ] [setup] command received message:', message);
         const data = apis[message.cmd](...message.params);
         res.statusCode = 200;
         const result = {
@@ -59,7 +60,7 @@ exports.setup = async function () {
   const io = socketIo(server);
   io.on('connection', (socket) => {
     socket.on('ipc', (message, callback) => {
-      ELog.info('[ api ] [setup] socket id:' + socket.id + ' message cmd: ' + message.cmd);
+      eLogger.info('[ api ] [setup] socket id:' + socket.id + ' message cmd: ' + message.cmd);
       const data = apis[message.cmd](...message.params);
       if (data && typeof data.then === 'function') { // 判断是否是异步
         data.then((data) => {
@@ -80,7 +81,7 @@ exports.setup = async function () {
   });
 
   server.listen(port, listen, function() {
-    ELog.info('[ api ] [setup] server is listening on', `${listen}:${port}`);
+    eLogger.info('[ api ] [setup] server is listening on', `${listen}:${port}`);
   });
 };
 
@@ -94,7 +95,7 @@ function setApi() {
       _.map(fileObj, function(fn, method) {
         let methodName = getApiName(name, method);
         apis[methodName] = fn;
-        // ELog.info('[ Monitor ]', methodName);
+        // eLogger.info('[ Monitor ]', methodName);
       });
     }
   });

+ 1 - 1
electron/apis/base.js

@@ -1,6 +1,6 @@
 'use strict'
 
-const AutoLaunchManager = require('../lib/AutoLaunch')
+const AutoLaunchManager = require('../lib/autoLaunch')
 
 exports.autoLaunchEnable = function () {
   const autoLaunchManager = new AutoLaunchManager()

+ 3 - 2
electron/autoUpdater.js

@@ -5,10 +5,11 @@ const autoUpdater = updater.autoUpdater;
 const config = require('./config');
 const path = require('path');
 const {app} = require('electron');
+const eLogger = require('./lib/eLogger').get();
 
 exports.setup = function () {
   const pkgInfo = require(path.join(app.getAppPath(), 'package.json'));
-  ELog.info('[autoUpdater] [setup] current version: ', pkgInfo.version);
+  eLogger.info('[autoUpdater] [setup] current version: ', pkgInfo.version);
   const updateConfig = config.get('autoUpdate');
   autoUpdater.setFeedURL(updateConfig.options);
 
@@ -45,7 +46,7 @@ exports.checkUpdate = function () {
 }
 
 function sendStatusToWindow(text) {
-  ELog.info(text);
+  eLogger.info(text);
   MAIN_WINDOW.webContents.send('message', text);
 }
 

+ 1 - 1
electron/lib/AutoLaunch.js

@@ -1,5 +1,5 @@
 const { app } = require('electron');
-const { LOGIN_SETTING_OPTIONS } = require('./Constant').AutoLaunch;
+const { LOGIN_SETTING_OPTIONS } = require('./constant').AutoLaunch;
 
 class AutoLaunch {
   enable () {

+ 35 - 0
electron/lib/eLogger.js

@@ -0,0 +1,35 @@
+const eLog = require('electron-log');
+const config = require('../config');
+
+class Log {
+  constructor () {
+    if (typeof Log.instance === 'object') {
+      return Log.instance;
+    }
+
+    let logConfig = config.get('log');
+    for (let transport in logConfig) {
+      const configInfo = logConfig[transport];
+      if (transport === 'file') {
+        eLog.transports.file.level = configInfo.level;
+        eLog.transports.file.file = configInfo.fileName;
+        eLog.transports.file.fileName = configInfo.fileName;
+        eLog.transports.file.format = configInfo.format;
+        eLog.transports.file.maxSize = configInfo.maxSize;
+      }  
+    }
+    Log.instance = eLog;
+
+    return Log.instance;
+  }
+}
+
+exports.setup = function () {
+  return new Log();
+}
+
+exports.get = function () {
+  return new Log();
+}
+
+exports = module.exports;

+ 2 - 18
electron/setup.js

@@ -1,17 +1,17 @@
 'use strict';
 
-global.ELog = require('electron-log');
 const storage = require('./storage');
 const config = require('./config');
 const is = require('electron-is');
 const api = require('./api');
 const ipc = require('./ipc');
+const eLogger = require('./lib/eLogger');
 
 module.exports = () => {
   // 存储模块
   storage.setup();
   // 日志
-  logger();
+  eLogger.setup();
   // 自动更新
   const updateConfig = config.get('autoUpdate');
   if ((is.windows() && updateConfig.windows) || (is.macOS() && updateConfig.macOS)
@@ -24,19 +24,3 @@ module.exports = () => {
   // ipc模块
   ipc.setup();
 }
-
-function logger () {
-  let logConfig = config.get('log');
-  for (let transport in logConfig) {
-    const configInfo = logConfig[transport];
-    if (transport === 'file') {
-      ELog.transports.file.level = configInfo.level;
-      ELog.transports.file.file = configInfo.fileName;
-      ELog.transports.file.fileName = configInfo.fileName;
-      ELog.transports.file.format = configInfo.format;
-      ELog.transports.file.maxSize = configInfo.maxSize;
-    }
-  }
-
-  return true;
-};

+ 6 - 3
main.js

@@ -27,6 +27,9 @@ for (let i = 0; i < process.argv.length; i++) {
 const eggConfig = electronConfig.get('egg', ENV)
 eggConfig.env = ENV
 
+// eLogger
+const eLogger = require('./electron/lib/eLogger').get();
+
 if (process.mas) app.setName('electron-egg')
 
 async function initialize () {
@@ -92,7 +95,7 @@ async function createWindow () {
 }
 
 async function startServer (options) {
-  ELog.info('[main] [startServer] options', options)
+  eLogger.info('[main] [startServer] options', options)
   const protocol = 'http://'
   let startRes = null
   let url = null
@@ -114,9 +117,9 @@ async function startServer (options) {
         break
     }
   }
-  ELog.info('[main] [url]:', url)
+  eLogger.info('[main] [url]:', url)
   startRes = await eggLauncher.start(options).then((res) => res, (err) => err)
-  ELog.info('[main] [startServer] startRes:', startRes)
+  eLogger.info('[main] [startServer] startRes:', startRes)
   if (startRes === 'success') {
     MAIN_WINDOW.loadURL(url)
     return true