在Ubuntu环境下,Node.js日志存储策略可从日志生成、轮转、存储、分析及安全等方面设计,以下是关键方案及工具:
winston
(功能丰富)、pino
(高性能)或bunyan
(结构化JSON日志),支持配置日志级别(开发环境debug
,生产环境error
)和输出格式(如JSON)。const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
/etc/logrotate.d/nodejs
):/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
copytruncate
dateext
}
pm2 install pm2-logrotate
,配置参数如max_size: 100M
、retain: 30
。winston-daily-rotate-file
,直接在代码中定义轮转规则(如按天生成日志)。/var/log/nodejs/
目录,按日期或服务拆分文件,便于管理。chmod 640
),避免敏感信息泄露。forever
监控进程状态,异常时触发告警。winston
默认支持异步写入。debug
日志,仅记录关键错误和警告。参考来源: