log4js的配置难点解析

来源:互联网 发布:kali linux arp 编辑:程序博客网 时间:2024/05/17 13:43

log4js整体配置相对比较简单,但部分配置容易混淆,网上的说法也不经相同,以下根据自己实践与理解记录一下。


1、type:console

将日志输出至控制台,这样可以方便开发人员在开发时接看到所有日志信息,在其他环境不建议设置

2、alwaysIncludePattern

如果为true,则每个文件都会按pattern命名,否则最新的文件不会按照pattern命名
3、replaceConsole
如果为true,则程序中用console.log输出到控制台的信息,也会输出到日志文件中,且格式按照log4js的格式输出,如果为false,则console.log只会输出在控制台。与type:console的appender正好相反,如果设置了type:console,则会将log4js.log日志输出至控制台。
4、category
没有看到权威的说明,我的理解category就是一个日志名字,如果没有取应该是默认的。只有当开发人员通过getLogger(category)获得相对应的日志时,才能输出到对应的appender中,否则会发送给所有默认的appender
5、logLevelFilter
没有看到什么文档说明,但实际的例子还是不少,直观理解应该就是根据日志级别进行日志过滤。

因为nodejs应用本身较小,所以不建议建立过多的category。我在自己的应用中配置如下:
开发环境:
{    "appenders": [{        "type": "console"    }, {        "type": "dateFile",        "filename": "./log/stats",        "pattern": ".dd.log",        "alwaysIncludePattern": true,        "category": "stats",        "level" : "INFO"    }, {        "type": "file",        "filename": "./log/app.log",        "maxLogSize": 2048000,        "numBackups": 10,        "level" : "DEBUG"    }, {        "type": "logLevelFilter",        "level": "WARN",        "appender": {            "type": "dateFile",            "filename": "./log/errors",            "pattern": ".dd.log",            "alwaysIncludePattern": true        }    }],    "replaceConsole": true}
1)stats用于一些统计日志,按天记录;
2)app用于记录应用日志,按大小划分;
3)errors日志用于快速发现错误,是一个日志层级过滤器,该日志按日统计。


生成环境比开发环境少一个console,app.log日志等级设置为INFO

0 1
原创粉丝点击