天天看点

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

最后最后提醒一下,使用时注意路径的问题。。

继续阅读