说明 日常开发中,对于日志模块,java
开发 -> log4j
,而 nodejs
开发,则对应工具为 log4js
。
log4js 介绍安装 1 npm install log4js --save
日志级别
等级由低到高:trace < debug < info < warn < Error < Fatal;
1 2 3 4 5 6 logger.trace ('Entering cheese testing' ); logger.debug ('Got cheese.' ); logger.info ('Cheese is Gouda.' ); logger.warn ('Cheese is quite smelly.' ); logger.error ('Cheese is too ripe!' ); logger.fatal ('Cheese was breeding ground for listeria.' );
debug 可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;
info 重要,输出信息:用来反馈系统的当前状态给最终用户的;
warn, 可修复,系统可继续运行下去;
Error, 可修复性,但无法确定系统会正常的工作下去;
Fatal, 相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。
函数 1 2 3 getLogger ("参数" ) log4js.configure (log4jsConfig);
配置项 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 "log4jsConfig" : { "appenders" : [ { "type" : "console" } , { "type" : "file" , "absolute" : true , "filename" : "a.log" , "maxLogSize" : 10000000 , "backups" : 100 , "category" : "http" } , ] , "levels" : { "[all]" : "INFO" } , "replaceConsole" : true } ,
记录请求 1 2 3 4 5 6 7 app.use (log4js.connectLogger (log4js.getLogger ("http" ), { level : 'auto' , format : ':remote-addr - -' + ' ":method :url HTTP/:http-version"' + ' :status :content-length :response-time ":referrer"' + ' ":user-agent"' }));
日志的一个重要功能不仅仅是在调试时使用,最重要的还是当前端发起请求时,能把该请求记录在日志中,该行代码的作用就是这个功能。
其中的level参数表示日志输出级别,设置为auto,日志级别对应规则为:
http返回码为3**:level=WARN;
http返回码为4,5 时,level=ERROR;
其他的返回码,level=INFO
日志分片 按文件大小 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 "log4jsConfig" : { "appenders" : [ { "type" : "console" } , { "type" : "file" , "absolute" : true , "filename" : "a.log" , "maxLogSize" : 10 , "backups" : 5 , "category" : "http" } ] , "levels" : { "[all]" : "DEBUG" } , "replaceConsole" : true } ,
对应效果 只能备份 backups
指定的份数,最新的会更新删除替换, 且每个文件为 maxLogSize
的值。
按日期分片 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 "log4jsConfig" : { "appenders" : [ { "type" : "console" } , { "type" : "dateFile" , "absolute" : true , "filename" : "a-accesslog" , "pattern" : "-yyyy-MM-dd.log" , "alwaysIncludePattern" : true , "category" : "http" } ] , "levels" : { "[all]" : "DEBUG" } , "replaceConsole" : true } ,
对应效果 日志按照日期进行分片,且不会限制大小。