有效监控Ubuntu下JavaScript(JS)日志活动的步骤与工具
首先需明确JS日志的存储路径,常见位置包括:
/var/log/(如Node.js应用日志可能存放在/var/log/nodejs/或/var/log/your-app-name.log);logs/文件夹(如./logs/app.log);journalctl命令查看systemd管理的JS服务日志(如journalctl -u your-js-service)。journalctl是Ubuntu系统默认的日志管理工具,适合监控systemd管理的JS服务日志:
journalctl -f(持续输出最新日志);journalctl -u your-js-service-name -f(替换为你的JS服务名称,如node-app);journalctl --since "2025-10-01" --until "2025-10-22" -f(查看指定时间段的日志);journalctl -p err -u your-js-service-name(仅显示错误级别日志)。tail -f是最常用的实时监控工具,适合查看普通日志文件:
tail -f /path/to/your-js-app.log(替换为实际日志路径);tail -f /path/to/app1.log /path/to/app2.log(同时跟踪多个文件)。watch适合定期执行命令并刷新输出,适合需要固定间隔查看日志的场景:
watch -n 5 "tail -n 100 /path/to/your-js-app.log"(-n 5表示5秒间隔)。grep "ERROR" /path/to/app.log;awk '{print $1, $4}' /path/to/app.log | sort | uniq -c(提取第1列和第4列并统计频率);sed '/ERROR/d' /path/to/app.log(删除包含“ERROR”的行)。logrotate用于自动管理日志文件大小和数量,避免日志文件过大占用磁盘空间:
cat /etc/logrotate.conf;cat /etc/logrotate.d/your-js-service(替换为你的服务名称);/etc/logrotate.d/your-js-service,实现每天轮转、保留7天日志、压缩旧日志:/path/to/your-js-app.log {
daily
rotate 7
compress
missingok
notifempty
}
PM2是Node.js应用进程管理工具,内置日志管理功能,适合生产环境:
pm2 logs(显示所有应用的日志);pm2 logs your-app-name(替换为应用名称);pm2 logs > /path/to/app.log(将日志输出到文件);pm2 install pm2-logrotate(安装pm2-logrotate插件,自动轮转日志)。info或warn级别,避免过多debug日志占用资源;json()格式化),便于后续过滤和分析;