天天看點

nodejs express項目使用log4js

這幾天一直在研究log4js的日志功能,說起來都是淚啊

nodejs express項目使用log4js
nodejs express項目使用log4js
nodejs express項目使用log4js

。。就那麼簡單的一個功能,足足卡了我幾天。(沒看錯,就是幾天)。。。原因就是,log4js沒有把加載檔案和通路的路徑寫進生成的日志檔案。上百度查來查來都是那幾編教程,然後再去google查,還是那樣。。。查找未果之後,隻能自己默默探索了。。

為了避免大家跟着我踩坑,下面就直接上正确的代碼了。。

1.下載下傳log4js包(在自己項目下輸入下面這個指令)

npm install log4js

2.建立一個log.js檔案

var log4js = require('log4js');
log4js.configure({
	appenders:[
		{
			type : "console",
			category:"console"	//設定後控制台不輸出資訊,可删除這句
		},{
			type:"dateFile",
			filename:"../logs/log",
			pattern: "_yyyy-MM-dd.log",
			alwaysIncludePattern: true,		//檔案名是否始終包含占位符
			absolute: false,				//filename是否絕對路徑
			category: "dateFileLog"
		}
	],
	replaceConsole: true,
	levels:{
		dateFileLog:"INFO",		//設定記錄器的預設顯示級别,低于這個級别的日志,不會輸出。其他級别(trace、debug、warn、error、fatal)
	}
});


var dateFileLog = log4js.getLogger('dateFileLog');
exports.logger = dateFileLog;

exports.use = function(app){ 
	//app.use(log4js.connectLogger(dateFileLog, {level:'INFO', format:':method :url'}));
	app.use(log4js.connectLogger(dateFileLog, {level:'auto', format:':method :url'})); 
}

           

3.在app.js檔案中引入log.js檔案

nodejs express項目使用log4js

4.調用日志模闆

nodejs express項目使用log4js

*切記,必須放在app.use(logger.('dev'))前面,不然日志不列印通路的路徑和加載檔案路徑

5.自定義列印資訊

在需要自定義列印資訊檔案上,添加

var logger = require('../logs/log').logger;

然後調用使用

logger.info("Test");

如果出現如下圖顯示,那麼恭喜你,成功調用了。(因為測試,是以多列印了幾條)

nodejs express項目使用log4js

最後附上完整的日志顯示截圖。。

nodejs express項目使用log4js

最後最後提醒一下,使用時注意路徑的問題。。

繼續閱讀