发布于2026-07-13 阅读(0)
扫一扫,手机访问
在生产环境中跑 Node.js 应用,日志管理是件绕不开的事——你总得知道应用在干嘛、出了什么问题、从哪里查起。但说实话,很多人要么直接扔到控制台,要么随便写个文件不管了,等到磁盘爆了或者排查故障时才发现一团乱。这篇指南就把 CentOS 上 Node.js 日志管理的常见做法和要点捋一捋,从输出位置、轮转清理到结构化、集中化,一步到位。

node app.js > logs/app.log 2>&1。简单粗暴,但适合临时调试。/root/.pm2/logs/ 目录下,文件名通常会包含应用名和 -err.log、-out.log 后缀,找起来很直观。journalctl -u your-nodejs-service-name -t 来查看日志,这是 CentOS 上的标准做法。/var/log/ 下的 messages、secure)通常给系统组件用,不建议直接把应用日志写进去,除非你通过 syslog 协议做统一对接,否则容易混淆。日志只写不删,磁盘迟早要崩。轮转和清理是必须上的措施,下面几种方案可以按需选。
winston-daily-rotate-file,可以按天或按文件大小切分,还支持自动压缩与归档。关键参数包括 filename、datePattern、zippedArchive: true、maxSize、maxFiles。这种方式跟系统级方案可以二选一,也可以组合使用。logrotate 管理 Node.js 日志文件。典型策略是每天轮转、压缩旧日志、保留固定天数。示例配置放在 /etc/logrotate.d/nodejs_app:/path/to/your/nodejs/app/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}配置写好后,可以用 sudo logrotate -f /etc/logrotate.d/nodejs_app 强制运行一次来验证语法和行为,logrotate 默认由 cron.daily 每天自动执行。.log 文件:0 2 * * * find /path/to/logs -type f -name "*.log" -mtime +7 -deletepm2-logrotate 插件,按大小或按时间切割并保留指定份数,配置起来也很方便。error.log 只记录 error 级别,combined.log 记录所有级别。winston-syslog 等传输器直接输出到 syslog。StandardOutput/StandardError 设为 syslog,并通过 SyslogIdentifier 来标识应用名称,这样就能统一纳入系统的日志体系了。journalctl -u your-nodejs-service-name -t,可以按时间、服务名检索。pm2 logs your-app-name,实时 tail 输出,支持按应用名过滤。sudo logrotate -f /etc/logrotate.d/nodejs_app,强制运行一次就能知道配置有没有写错。下一篇:如何启用Apache模块
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8