log4js
這一篇足夠:轉載:http://www.cnblogs.com/Joans/p/4092293.html
代碼貼出來吧:
log.js
var log4js = require('log4js');
log4js.configure({
appenders: [
{
type: 'console',
category: "console"
}, //控制臺輸出
{
type: "dateFile",
filename: 'logs/log.log',
pattern: "_yyyy-MM-dd",
alwaysIncludePattern: false,
category: 'dateFileLog'
},
{
type: "dateFile",
filename: 'logs/sqllog.log',
pattern: "_yyyy-MM-dd",
alwaysIncludePattern: false,
category: 'sqlFileLog'
},
{
type: 'file',
filename: 'logs/soldier.log',
category: 'soldierLog'
}
],
replaceConsole: true, //替換console.log
levels: {
dateFileLog: 'INFO',
sqlFileLog: 'INFO',
soldierLog: 'ERROR'
}
});
var dateFileLog = log4js.getLogger('dateFileLog');
var soldierLog = log4js.getLogger('soldierLog');
var sqlFile = log4js.getLogger('sqlFileLog');
//exports.logger = dateFileLog;
exports.use = function (app) {
//頁面請求日志,用auto的話,默認級別是WARN
//app.use(log4js.connectLogger(dateFileLog, {level:'auto', format:':method :url'}));
app.use(log4js.connectLogger(dateFileLog, {level: 'debug', format: ':method :url'}));
};
global.logger = dateFileLog;
global.sqlLogger = sqlFile;
global.soldierLog = soldierLog;
在express初始化時候:
var log = require('./log4');//引入Log4js
log.use(app);//app為express的對象
雖然設置的debug模式,但是只有info以上的可以打出來,info也可以
其中type的格式有file 還有datefile之類的。
log4js的輸出級別6個: trace, debug, info, warn, error, fatal
logger.trace(‘Entering cheese testing’);
logger.debug(‘Got cheese.’);
logger.info(‘Cheese is Gouda.’);
logger.warn(‘Cheese is quite smelly.’);
logger.error(‘Cheese is too ripe!’);
logger.fatal(‘Cheese was breeding ground for listeria.’);
如果輸出級別是INFO,則不會打印出低于info級別的日志trace,debug,只打印info,warn,error,fatal。這樣做 的好處在于,在生產環境中我們可能只關心異常和錯誤,并不關心調試信息。從而大大減少日志的輸出,能減少磁盤寫入。而在開發環境中,我們可以需要打印非常 多的信息,幫助開發人員定位錯誤,調試代碼。
還有一個好處就是,代碼中可以混有各種的日志打印代碼。我們只要在一個配置文件中,修改輸出級別,日志輸出就會發生變化,不用修改所有的代碼。如果所有地方都是console.log(),那么上線的時候,改動這個東西就要花很多時間。
總結
- 上一篇: 电容参数:X5R,X7R,Y5V,COG
- 下一篇: 银行卡信息生成