Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
基于Node.js的日志统计方案,兼容ODP日志格式与配置。关于ODP的日志方案调研可查看此文档.
统计日志类型包括:
访问日志统计方式为请求返还才触发。
应用日志包括主动触发的统计以及未捕获的错误。
1 npm全局安装yog-log,npm install -g yog-log
2 Node启动脚本中通过中间件方式使用yog-log,并传入日志配置参数。如下DEMO所示:
var Logger = require('yog-log');
var app = express();
//...此处省去代码
app.use(Logger(config));//config为读取的日志配置参数
3 代码中res对象通过emit方式触发log事件,传递日志参数
//router层使用
try{
//do something
}catch(e){
res.emit('log',{'stack':e,'errno':120,'msg' :'error happened!'},'warning'); //推荐
//or res.emit('log',{'stack':e});//日志等级不写默认为notice
//or res.emit('log','error!');//只写字符串不会解析错误堆栈
}
//model或其他没有res的地方使用
var logger = Logger.getLogger(config); //不传递config走默认配置,配置说明见日志接口
logger.log('warning','msg');//or logger.warning('msg');
应用日志等级分为 FATAL
、WARNING
、NOTICE
、 TRACE
、DEBUG
几个,可以配置线上日志等级来确定统计哪些日志。默认为16,即统计所有日志(具体可参考下面日志默认配置说明)。
针对每个应用日志等级都有相应的接口。如fatal日志可以通过 logger.log('fatal',{'stack':e,'msg':'error!'})
的方式统计;也可以通过logger.fatal({'stack':e,'msg':'error!'})
方式统计。其他几个等级一样。
如果是访问日志,对应的等级名称为access
(正常访问)及access_error
(异常访问404等),使用方式跟应用日志一样。默认通过中间件方式使用yog-log时将统计访问日志和301、404错误日志。错误日志默认单独存储。
log(level,obj) 方法参数 :
统计模块默认以中间件的形式且只有请求过来才会进行初始化,初始化后可以在model等地方直接获取到此实例。如果未进行初始化(没有请求)就想使用日志统计,请传递日志参数。日志配置项见下所示。
默认配置
默认配置与ODP日志保持一致,如下所示:
# 日志级别
# 1:打印FATAL
# 2:打印FATAL和WARNING
# 4:打印FATAL、WARNING、NOTICE(线上程序正常运行时的配置)
# 8:打印FATAL、WARNING、NOTICE、TRACE(线上程序异常时使用该配置)
# 16:打印FATAL、WARNING、NOTICE、TRACE、DEBUG(测试环境配置)
level: 16
# 是否按小时自动分日志,设置为1时,日志被打在some-app.log.2011010101
auto_rotate: 1
# 日志文件路径是否增加一个基于app名称的子目录,例如:log/some-app/some-app.log
# 该配置对于unknown-app同样生效
use_sub_dir: 1
format: format: %L: %t [%f:%N] errno[%E] logId[%l] uri[%U] refer[%{referer}i] cookie[%{cookie}i] %S %M
# 提供绝对路径,日志存放的根目录,只有非odp环境下有效
log_path: /home/user/odp/log/
# 提供绝对路径,日志格式数据存放的根目录,只有非odp环境下有效
data_path: /home/user/odp/data/
# 是否开启Omp日志, 0默认值(两个日志文件都开启),1,只打印omp的new日志,2只打印老日志
is_omp: 0
配置项说明
配置项 | 默认值 | 说明 |
---|---|---|
format | 见下 | 参照format string格式 |
format_wf | 见下 | 参照format string格式 |
level | 16 | log日志级别 |
auto_rotate | 1 | 是否自动切分 |
use_sub_dir | 1 | 日志是否在二级目录打印,目录名为 ${APP_NAME} |
log_path | 无 | 日志存放目录 |
data_path | 无 | 格式数据存放的目录 |
is_omp | 0 | 是否开启omp日志,如果不接入omp,建议置为2 |
注意 : is_omp
日志格式不完全兼容
完整日志格式配置项参考ODP LOG调研文档,部分指标支持不全,初期请勿修改格式配置参数
邮件组: oak@baidu.com 联系人: zhangtao07@baidu.com、wangcheng@biadu.com
FAQs
yog logger
The npm package yog-log receives a total of 892 weekly downloads. As such, yog-log popularity was classified as not popular.
We found that yog-log demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.