阅读量:2
以下是Ubuntu下JavaScript(Node.js)日志记录的最佳实践:
-
选择高效日志库
- Winston:支持多传输(文件、控制台等)、灵活配置日志级别和格式,适合复杂场景。
- Pino:高性能,低开销,适合高并发应用,支持JSON格式和异步日志。
- Bunyan:默认JSON格式输出,便于结构化分析,适合日志聚合场景。
-
合理配置日志级别
- 开发环境用
debug/verbose,生产环境用info/warn/error,通过环境变量动态切换。 - 示例:
const logger = winston.createLogger({ level: process.env.NODE_ENV === 'production' ? 'info' : 'debug' })。
- 开发环境用
-
结构化日志与元数据
- 采用JSON格式记录日志,包含时间戳、请求ID、用户ID等上下文信息,便于分析。
- 示例:
logger.info({ event: 'user_login', userId: 123, timestamp: new Date().toISOString() })。
-
日志轮转与归档
- 使用
winston-daily-rotate-file等插件按日期或大小分割日志,避免单文件过大。 - 配置压缩和过期删除,如
maxSize: '10m', maxFiles: '7d'。
- 使用
-
集中式日志管理
- 部署ELK Stack(Elasticsearch+Logstash+Kibana)或Graylog,实现日志的集中存储、搜索和可视化。
- 通过PM2或Logstash Agent实时传输日志至中央服务器。
-
性能优化
- 选择异步日志库(如Pino),减少对主线程阻塞。
- 批量写入日志,降低I/O频率。
-
安全与合规
- 对敏感信息(如密码、token)脱敏处理,避免明文记录。
- 限制日志文件访问权限,确保仅授权人员可查看。
-
监控与告警
- 通过Prometheus+Grafana监控日志指标(如错误率、日志量),设置异常告警。
- 利用ELK Stack的Kibana警报功能监控关键事件。
参考来源:
以上就是关于“Ubuntu JS日志记录最佳实践”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm