@zenweb/log
v5.5.0
Published
Zenweb Log module
Readme
log - 日志
ZenWeb 日志支持
依赖模块
@zenweb/meta(可选)— 提供ctx.requestId与ctx.traceId,未安装则日志中的rid/tid字段为空
配置项
| 配置项 | 类型 | 默认值 | 功能 |
| ----- | --- | ----- | ---- |
| dir | string | env.LOG_DIR | 日志存储目录,不设置则不存储到磁盘 |
| flushInterval | number | 1000 | 日志从内存存储到磁盘中的间隔时间(毫秒) |
| maxBufferLength | number | 1000 | 最大缓冲长度,超过设定长度不管有没有到落盘时间都会被保存到磁盘中 |
| fields | { [key: string]: any; } | { name: core.name } | 附加字段值,每次记录日志都会附加在日志中的值 |
其他透传选项请参考 zenlog.js 的
StreamOption与DirBufferStreamOption。
Core 挂载项
| 挂载项 | 类型 | 功能 | | ----- | --- | ---- | | log | Logger | 应用级别的日志记录 |
Context 挂载项
| 挂载项 | 类型 | 功能 |
| ----- | --- | ---- |
| log | Logger | 请求级别的日志记录(按请求缓存),会附加字段信息 { method, url, host, ip, rid, tid } |
全局模式
| 方法 | 功能 | | ----- | ---- | | $getLogger() | 取得 Logger 对象。若处于请求中则返回当前 Context 的 Logger,否则返回 Core 中的根 Logger | | $log | 经代理的快捷对象,在调用时动态解析为上述 Logger,可在任意位置直接使用 |
异常捕获
unhandledRejection:自动记录到根 Logger- Koa
error事件:err.expose === true的错误视为客户端可见错误,跳过记录;其余按上下文 Logger 记录
示例
import { $initCore } from '@zenweb/core';
import meta from '@zenweb/meta';
import log from '@zenweb/log';
$initCore()
.setup(log({ dir: process.cwd() }))
.setup(meta({ traceId: true }))
.start();