winston、pino等库将日志输出为JSON格式,支持控制台、文件等多通道传输。例如:const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'app.log' })
]
});
syslog或journald,利用系统原生工具管理。logrotate工具定期压缩、删除旧日志,避免文件过大。配置示例:# /etc/logrotate.d/nodejs
/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
notifempty
}
tail -f实时查看日志文件更新。grep过滤特定关键字(如error)。gnome-system-log或ksystemlog直观浏览日志。lnav提供日志语法高亮和分页功能。Filebeat采集日志,Elasticsearch存储,Kibana可视化分析。node_exporter采集指标,Grafana展示日志相关数据并设置告警规则。Datadog、Loggly,支持日志聚合、智能告警和跨平台分析。