在Ubuntu上实现Node.js日志自动化处理可以通过以下几种方法和工具来实现:
Winston 示例:
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' }),
],
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({ format: winston.format.simple() }));
}
logger.info('这是一条信息日志');
logger.error('这是一条错误日志');
logrotate
进行日志轮转logrotate
是一个用于管理日志文件的工具,可以自动压缩、归档和删除旧的日志文件。
配置 logrotate
:
创建一个 logrotate
配置文件 /etc/logrotate.d/nodejs
:
/var/log/nodejs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
这个配置表示每天轮转一次日志文件,并保留最近7天的日志文件。
pm2 是一个进程管理器,可以自动重启应用、监控日志等。
安装和配置 pm2
:
sudo npm install pm2 -g
pm2 start app.js --name my-app
pm2 logs my-app --lines 100
pm2 logs my-app --follow
ELK Stack(Elasticsearch, Logstash, Kibana)或 Graylog 可以收集、存储和分析日志。
使用 ELK Stack 进行日志分析:
cron
作业定期执行日志分析和报告生成。通过以上步骤和方法,你可以在 Ubuntu 上实现 Node.js 日志的自动化处理,提高日志管理的效率和可靠性。