/** * 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'})); }