用途:为应用与分布式系统实现安全、结构化的日志记录,覆盖日志级别、请求上下文、PII 脱敏与集中聚合。
主要能力:
- 日志级别规范:DEBUG 仅用于详细调试(生产关闭),INFO 记录正常操作,WARN 记录潜在问题,ERROR 记录可恢复错误,FATAL 记录严重故障,后四者在生产开启。
- 结构化日志:以 Winston 为例,使用 JSON 格式、时间戳、defaultMeta 指定服务名,并配置 Console 与 File(error.log,level: error)传输。
- 请求上下文:借助 AsyncLocalStorage 保存 requestId(取自 x-request-id 或生成 uuid)与 userId,日志函数自动合并上下文与自定义元数据。
- PII 脱敏:对 password、ssn、creditCard、token 等敏感字段替换为 [REDACTED],邮箱按规则部分掩码。
使用方式:按上述模式创建 logger,调用 logger.info('User logged in', { userId: '123', ip: '192.168.1.1' }) 或 logger.error('Payment failed', { error: err.message, orderId: '456' });在中间件中运行 storage.run(context, next) 注入请求上下文。
最佳实践:使用结构化 JSON;跨服务携带关联 ID;记录前脱敏所有 PII;采用异步日志提升性能;实现日志轮转;生产环境禁用 DEBUG。
扩展实现:references/advanced-logging.md 提供 Python structlog、Go zap 高性能日志、ELK Stack 集成、AWS CloudWatch 配置与 OpenTelemetry 追踪。
禁止事项:记录密码或令牌;生产使用 console.log;在紧密循环内记录日志;为客户端错误输出堆栈跟踪。
限制:资料未提供安装命令、具体版本要求、收费与平台支持信息。