瀏覽代碼

add log4js

zhangweicheng 7 年之前
父節點
當前提交
e15cb87168
共有 4 個文件被更改,包括 106 次插入2 次删除
  1. 22 0
      logs/log4js.json
  2. 80 0
      logs/log_helper.js
  3. 2 1
      operation.js
  4. 2 1
      package.json

+ 22 - 0
logs/log4js.json

@@ -0,0 +1,22 @@
+{
+  "customBaseDir" :"../logs/ConstructionOperation/",
+  "customDefaultAtt" :{
+    "type": "dateFile",
+    "alwaysIncludePattern": false,
+    "pattern":".yyyy-MM-dd hhhr"
+  },
+  "appenders": {
+    "console": { "type": "console" },
+    "logInfo":{"filename":"info.log"},
+    "logDebug":{"filename":"debug.log"},
+    "logWarn":{"filename":"warn.log"},
+    "logErr":{"filename":"err.log"}
+  },
+  "categories": {
+    "default": { "appenders": ["console"], "level": "debug"},
+    "logInfo":{ "appenders": ["logInfo","console"], "level": "debug"},
+    "logDebug":{ "appenders": ["logDebug","console"], "level": "debug"},
+    "logWarn":{ "appenders": ["logWarn"], "level": "debug"},
+    "logErr":{ "appenders": ["logErr"], "level": "debug"}
+  }
+}

+ 80 - 0
logs/log_helper.js

@@ -0,0 +1,80 @@
+/**
+ * Created by chen on 2017/9/4.
+ */
+let helper = {};
+module.exports.logger = helper;
+
+let log4js = require('log4js');
+let fs = require("fs");
+let path = require("path");
+
+// 加载配置文件
+let objConfig = JSON.parse(fs.readFileSync(__dirname+"/log4js.json", "utf8"));
+
+// 加载基础配置
+if(objConfig.appenders){
+    let baseDir = objConfig["customBaseDir"];
+    let defaultAtt = objConfig["customDefaultAtt"];
+    for(let key in objConfig.appenders){
+        var item = objConfig.appenders[key];
+        if(item["type"] == "console")
+            continue;
+        if(defaultAtt != null){
+            for(let att in defaultAtt){
+                if(item[att] == null)
+                    item[att] = defaultAtt[att];
+            }
+        }
+        if(baseDir != null){
+            if(item["filename"] == null)
+                item["filename"] = baseDir;
+            else
+                item["filename"] = baseDir + item["filename"];
+        }
+    }
+}
+
+
+log4js.configure(objConfig);
+
+let logDebug = log4js.getLogger('logDebug');
+let logInfo = log4js.getLogger('logInfo');
+let logWarn = log4js.getLogger('logWarn');
+let logErr = log4js.getLogger('logErr');
+
+console.log = logInfo.info.bind(logInfo);//把控制台信息输出到文件中
+
+helper.debug = function(msg){
+    if(msg == null)
+        msg = "";
+    logDebug.debug(msg);
+};
+
+helper.info = function(msg){
+    if(msg == null)
+        msg = "";
+    logInfo.info(msg);
+};
+
+helper.warn = function(msg){
+    if(msg == null)
+        msg = "";
+    logWarn.warn(msg);
+};
+
+helper.err = function(msg, exp){
+    if(msg == null)
+        msg = "";
+    if(exp != null)
+        msg += "\r\n" + exp;
+    logErr.error(msg);
+};
+
+// 配合express用的方法
+module.exports.use = function(app) {
+    //页面请求日志, level用auto时,默认级别是WARN
+    app.use(log4js.connectLogger(logDebug, {level:'debug', format:':method :url'}));
+}
+
+
+

+ 2 - 1
operation.js

@@ -9,6 +9,7 @@ let session = require('express-session');
 let DBStore = require('connect-mongo')(session);
 let fileUtils = require("./modules/common/fileUtils");
 let partials = require("express-partials");
+let log = require("./logs/log_helper");
 
 let URL = require('url');
 let fs = require('fs');
@@ -28,7 +29,7 @@ fileUtils.getGlobbedFiles('./modules/reports/models/*.js').forEach(function(mode
 let cfgCacheUtil = require("./config/cacheCfg");
 cfgCacheUtil.setupDftCache();
 
-
+log.use(app);
 app.use(express.static(_rootDir));
 
 app.set('views', path.join(__dirname, 'web'));

+ 2 - 1
package.json

@@ -23,6 +23,7 @@
   "dependencies": {
     "bluebird": "^3.5.0",
     "jszip": "^3.1.3",
-    "pdfkit": "^0.8.2"
+    "pdfkit": "^0.8.2",
+    "log4js":"~2.3.3"
   }
 }