在Node.js中,日志切割策略是确保日志文件不会占用过多磁盘空间,同时方便日志管理和分析的重要手段。以下是一些常见的日志切割策略:
pm2-logrotate
或Linux自带的logrotate
工具来实现。pm2-logrotate
):pm2 set pm2-logrotate:max_size 1G // 每个日志文件最大1GB
pm2 set pm2-logrotate:rotateInterval '0 0 * * *' // 每天切割一次
logrotate
工具来实现。logrotate
):rotate 8 # 保留最近8天的日志文件
dateext # 日志文件名后加上日期,如access.log.2023-10-01
missingok # 找不到日志文件时忽略
ifempty # 空日志文件不处理
compress # 压缩旧的日志文件
sharedscripts # 多个日志文件滚动后,只执行一次postrotate脚本
logrotate
工具来实现。logrotate
):rotate 5 # 保留最近的5个日志文件
Timber
或log4js
。Timber
):timber.log("订单已创建!", { orderId: 12345, userId: 67890, status: "成功" });
log4js
。log4js
):log4js.configure({
appenders: {
file: { type: 'file', filename: 'app.log' }
},
categories: {
default: { appenders: ['file'], level: 'info' }
}
});
winston
和Elasticsearch):const winston = require('winston');
const Elasticsearch = require('winston-elasticsearch');
const logger = winston.createLogger({
transport: new Elasticsearch({
host: 'elasticsearch',
port: 9200
})
});
通过上述策略,可以有效地管理Node.js应用的日志,确保日志文件的可读性和可维护性,同时避免因日志文件过大而影响系统性能。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: linux杀死进程的方法有哪几种