0.2.6 兼容:如果没有传msg,但是传了stack,则用stack信息替代msg
这是yog框架的log统计模块,支持中间件或者单独使用等方式,兼容ODP日志格式与配置。关于ODP的日志方案调研可查看此文档.
统计日志类型包括:
访问日志统计方式为请求返还才触发。
var YLogger = require('yog-log'); var path = require('path'); var conf = { app: 'yog', //app名称,产品线或项目名称等 log_path: path.join(__dirname, 'log'), //日志存放地址 intLevel: 16 //线上一般填4,参见配置项说明 } app.use(YLogger(conf));
填写此配置之后yog-log就开始统计访问日志。
使用getLogger方法获取到日志模块实例,然后调用接口统计日志。
getLogger
var YLogger = require('yog-log'); var logger = YLogger.getLogger(); //默认通过domain获取,单独使用请传递config logger.log('warning','msg');//or logger.warning('msg');
配置项均有默认值,理论上不需要配置也能工作。推荐设置配置有:level、app、log_path 三项。
level
app
log_path
APP_NAME
默认`format`: %L: %t [%f:%N] errno[%E] logId[%l] uri[%U] user[%u] refer[%{referer}i] cookie[%{cookie}i] %S %M 默认的`format_wf `: %L: %{%m-%d %H:%M:%S}t %{app}x * %{pid}x [logid=%l filename=%f lineno=%N errno=%{err_no}x %{encoded_str_array}x errmsg=%{u_err_msg}x]
在router层使用emit方式可以避免每个文件都引入logger和获取实例。参数说明:
错误堆栈
错误消息
错误码
如下所示:
res.emit('log',{'stack':e,'errno':120,'msg' :'error happened!'},'warning');
当框架接收请求时,yog-log会新建一个实例,并保存到domain中,确保单次请求流程中调用的getLogger获取到的是同一个实例。
如果单独使用log不经过请求, getLogger会新建一个实例,此时应当传递config配置参数。
提供统一的log方法打印日志。参数说明同response.emit。另外针对各个应用日志等级提供了相对应的方法。
请确保使用快捷方法时名称准确,否则程序将报错。
注意 : logger为通过getLogger获取到的日志模块实例 。
注意
自定义错误消息
如果想在日志中填写自定义的日志字段用于追查错误,请在obj中加入custom对象,然后按照键值对应放在custom中。如下所示:
//router层 res.emit('log',{ 'stack':e, //错误堆栈 'errno':120, //错误码 'msg' :'error happened!', //错误消息 'custom':{'key1' :'value1','key2':'value2'} //自定义消息 }); //其他地方 logger.log('warning', { 'stack':e, //错误堆栈 'errno':120, //错误码 'msg' :'error happened!', //错误消息 'custom':{'key1' :'value1','key2':'value2'} //自定义消息 });
注意custom字段默认只会在warning和fatal日志中展现
warning
fatal
生成的错误日志将会类似于下面的格式。其中可以看到custom字段已自动添加到日志中:
WARNING: 07-03 16:44:55 yd * - [logid=868855481 filename=D:\fis\test\models\doc.js lineno=25 errno=120 key1=value1 key2=value2 errmsg=error%20happened!]
处于debug模式下Log将在控制台输出错误日志,并根据错误日志类型显示不同的颜色,方便开发人员调试(debug模式下依旧会写日志到文件)。有两种方法开启debug模式:
arguments
_node_debug=1
yog-log兼容ODP支持灵活的日志格式配置,以满足不同系统对日志的格式要求。如接入OMP时warning日志格式配置:
%L: %{%m-%d %H:%M:%S}t %{app}x * %{pid}x [logid=%l filename=%f lineno=%N errno=%{err_no}x %{encoded_str_array}x errmsg=%{u_err_msg}x]
除非特殊情况,不建议随意修改日志格式配置。
格式配置方法如下:
%{%d/%b/%Y:%H:%M:%S %Z}t
单元测试说明详见此文档
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
Node Log 统计方案
这是什么
这是yog框架的log统计模块,支持中间件或者单独使用等方式,兼容ODP日志格式与配置。关于ODP的日志方案调研可查看此文档.
统计日志类型包括:
server日志
访问日志统计方式为请求返还才触发。
应用日志
快速开始
1 初始化配置
填写此配置之后yog-log就开始统计访问日志。
2 调用接口统计应用日志
使用
getLogger方法获取到日志模块实例,然后调用接口统计日志。日志初始化配置项
配置项均有默认值,理论上不需要配置也能工作。推荐设置配置有:
level、app、log_path三项。APP_NAME应用日志等级
response.emit(name,obj,level)
在router层使用emit方式可以避免每个文件都引入logger和获取实例。参数说明:
错误堆栈、错误消息、错误码。错误消息如果不填将使用错误堆栈的消息。如下所示:
getLogger(config)
当框架接收请求时,yog-log会新建一个实例,并保存到domain中,确保单次请求流程中调用的getLogger获取到的是同一个实例。
如果单独使用log不经过请求, getLogger会新建一个实例,此时应当传递config配置参数。
log(level,obj)
提供统一的log方法打印日志。参数说明同response.emit。另外针对各个应用日志等级提供了相对应的方法。
请确保使用快捷方法时名称准确,否则程序将报错。
注意: logger为通过getLogger获取到的日志模块实例 。自定义错误消息
如果想在日志中填写自定义的日志字段用于追查错误,请在obj中加入custom对象,然后按照键值对应放在custom中。如下所示:
注意custom字段默认只会在warning和fatal日志中展现生成的错误日志将会类似于下面的格式。其中可以看到custom字段已自动添加到日志中:
Debug支持
处于debug模式下Log将在控制台输出错误日志,并根据错误日志类型显示不同的颜色,方便开发人员调试(debug模式下依旧会写日志到文件)。有两种方法开启debug模式:
arguments添加参数debug : 1 即开启debug模式_node_debug=1开启debug模式日志格式配置
yog-log兼容ODP支持灵活的日志格式配置,以满足不同系统对日志的格式要求。如接入OMP时warning日志格式配置:
除非特殊情况,不建议随意修改日志格式配置。
格式配置方法如下:
%{%d/%b/%Y:%H:%M:%S %Z}t测试说明
单元测试说明详见此文档