nodejs Log4js v2.x配置使用
安装:
npm install log4js
npm install log4js –save // 安装到工程目录
配置与使用:
// 基本使用 var log4js = require('log4js'); var logger = log4js.getLogger(); logger.level = 'debug'; logger.debug("Some debug messages"); // 配置规则 /** * 第一种: * configure方法为配置log4js对象,内部有levels、appenders、categories三个属性 * levels: * 配置日志的输出级别,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八个级别,default level is OFF * 只有大于等于日志配置级别的信息才能输出出来,可以通过category来有效的控制日志输出级别 * appenders: * 配置文件的输出源,一般日志输出type共有console、file、dateFile三种 * console:普通的控制台输出 * file:输出到文件内,以文件名-文件大小-备份文件个数的形式rolling生成文件 * dateFile:输出到文件内,以pattern属性的时间格式,以时间的生成文件 * replaceConsole: * 是否替换控制台输出,当代码出现console.log,表示以日志type=console的形式输出 * */ log4js.configure('./config/log4js.json'); log4js.json { "appenders": { "access": { "type": "dateFile", "filename": "log/access.log", "pattern": "-yyyy-MM-dd" }, "rule-console": { "type": "console" }, "rule-file": { "type": "dateFile", "filename": "log/server-", "encoding": "utf-8", "maxLogSize": 10000000, "numBackups": 3, "pattern": "yyyy-MM-dd.log", "alwaysIncludePattern": true }, "rule-error": { "type": "dateFile", "filename": "log/error-", "encoding": "utf-8", "maxLogSize": 1000000, "numBackups": 3, "pattern": "yyyy-MM-dd.log", "alwaysIncludePattern": true } }, "categories": { "default": { "appenders": [ "rule-console", "rule-file", "rule-error" ], "level": "debug" }, "http": { "appenders": [ "access" ], "level": "info" } } } // 第二种配置方式 log4js.configure({ appenders: { ruleConsole: {type: 'console'}, ruleFile: { type: 'dateFile', filename: 'logs/server-', pattern: 'yyyy-MM-dd.log', maxLogSize: 10 * 1000 * 1000, numBackups: 3, alwaysIncludePattern: true } }, categories: { default: {appenders: ['ruleConsole', 'ruleFile'], level: 'info'} } }); |
工程配置问题:
Q1. must have a property “appenders” of type object
解决办法:v1.x与v2.x配置规则发生变化,appenders在v2.x是一个对象。link
参考:
nodejs总结之日志模块log4js v1.x
NodeJs之log4js v1.x
Nodejs中使用Log4js v1.x