今天新开一个项目,把原来的log4js 1.x 升级到2.x版本后发现原来的log4js配置不再能使用,查了下官方文档,顺便也记录下 log4js 2.x的配置。
安装
项目安装:
npm install log4js --save
配置
新建一个 log4js.json文件,并添加如下json内容:
{"appenders": {"console": {"type": "console"},"trace": {"type": "dateFile","filename": "./logs/access-","pattern": ".yyyy-MM-dd.log","alwaysIncludePattern": true,"maxLogSize ": 31457280},"http": {"type": "logLevelFilter","appender": "trace","level": "trace","maxLevel": "trace"},"info": {"type": "dateFile","filename": "./logs/info-","encoding": "utf-8","pattern": ".yyyy-MM-dd.log","maxLogSize": 10000000,"alwaysIncludePattern": true,"layout": {"type": "pattern","pattern": "[%d{ISO8601}][%5p %z %c] %m"},"compress": true},"maxInfo": {"type": "logLevelFilter","appender": "info","level": "debug","maxLevel": "error"},"error": {"type": "dateFile","filename": "./logs/error-","pattern": ".yyyy-MM-dd.log","maxLogSize": 10000000,"encoding": "utf-8","alwaysIncludePattern": true,"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"}}}
解释:
"type": "dateFile" // 可以设置成 console、file、dateFile三种"filename": "./logs/access-", // 设置log输出的文件路劲和文件名"pattern": ".yyyy-MM-dd.log","alwaysIncludePattern": true, // 和上面同时使用 设置每天生成log名"encoding": "utf-8", // 设置文件编码格式"maxLogSize ": 31457280 // 设置文件大小"level": "debug", // 设置log输出的最低级别"maxLevel": "error" // 设置log输出的最高级别// log级别为8级 ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF。默认级别是 OFF
使用
修改app.js 再顶部引入:
var log4js = require('log4js');log4js.configure('config/log4js.json');
这样程序哪里需要用就可以直接使用例如:
var logger = require('log4js').getLogger("index");logger.info("this is info");logger.warn("this is warn");logger.debug("this is debug");logger.error("this is error");
log4js 整合到express
其实只需要修改程序app.js里面的默认使用logger模块便可
// app.use(logger('dev')); // 这句注释,添加下句app.use(log4js.connectLogger(log4js.getLogger("http"), { level: 'trace' }));
