剛好有需求,寫一個log文件,記錄信息。但是在網上找了很久沒有合適的方案來給我一個新手去使用的。最終在github上找到一個demo,方案 很好,拿來配置了一下,感覺很不錯。地址:https://github.com/xrian/node-log4j2-example
首先需要做的,創建一個log4js的配置文件。log4js.json
{
"appenders": {
"console": {
"type": "console"
},
"trace": {
"type": "file",
"filename": "log/access.log",
"maxLogSize ": 31457280
},
"http": {
"type": "logLevelFilter",
"appender": "trace",
"level": "trace",
"maxLevel": "trace"
},
"info": {
"type": "dateFile",
"filename": "log/app-info.log",
"pattern": ".yyyy-MM-dd",
"layout": {
"type": "pattern",
"pattern": "[%d{ISO8601}][%5p %z %c] %m"
},
"compress": true
},
"maxInfo": {
"type": "logLevelFilter",
"appender": "info",
"level": "debug",
"maxLevel": "info"
},
"error": {
"type": "dateFile",
"filename": "log/app-error.log",
"pattern": ".yyyy-MM-dd",
"layout": {
"type": "pattern",
"pattern": "[%d{ISO8601}][%5p %z %c] %m"
},
"compress": true
},
"minError": {
"type": "logLevelFilter",
"appender": "error",
"level": "error"
}
},
"categories": {
"default": {
"appenders": [
"console",
"http",
"maxInfo",
"minError"
],
"level": "all"
}
}
}
config\log4j.json是配置文件 配置了三個類別 一個是http請求日誌,相當於tomcat的access日誌,當日志到達30M時,重新生成一個新的文件 一個是保存debug和info級別的日誌.每天生成一個新的文件 一個是保存error及以上等級的日誌.每天生成一個新的文件
之後,在app.js文件中,使用log4js
修改app.js 在頂部引入
var log4js = require('log4js');
log4js.configure('config/log4j.json');
這樣,就可以在項目中的其他地方使用log4j輸出日誌了.
var logger = require('log4js').getLogger("index");
logger.info('');
logger.error('');
將log4j整合進入express
在app.js中,將express默認的日誌模塊註釋掉,並且加載log4js模塊
// app.use(logger('dev'));
app.use(log4js.connectLogger(log4js.getLogger("http"), { level: 'trace' }));
app.use(log4js.connectLogger(…))這代碼,最好是放在其他的app.use()前面