温馨提示×

nodejs日志在linux存多久

小樊
40
2026-09-02 12:45:19
栏目: 编程语言

Node.js 本身不会自动管理日志保存时间,日志在 Linux 上能存多久,取决于你怎么记录日志以及Linux 系统的日志管理策略。下面分几种常见情况说明:


1️⃣ 直接在代码里写文件(如 fs.writeFile / fs.appendFile)

fs.appendFile('app.log', logText, () => {})
  • 保存时间:直到你手动删除或磁盘满
  • 不会自动清理
  • 风险:日志无限增长,可能撑满磁盘

✅ 建议:

  • 使用日志库(winston / pino)
  • 配合 logrotate

2️⃣ 使用日志库(winston / pino / bunyan)

例如 winston:

new winston.transports.File({
  filename: 'app.log',
  maxsize: 5242880,
  maxFiles: 5
})
  • 日志按大小轮转
  • 保存时间 ≈ maxFiles × 单文件时间
  • 仍然是“被动”存储,不按“天”算

3️⃣ 输出到 stdout / stderr(推荐做法)

console.log('xxx')

在 Linux 上通常由:

  • systemd
  • PM2
  • Docker

来管理日志。

systemd(最常见)

journalctl -u your-node-service
  • 默认保存:
    • 通常 1–4 周
    • 或磁盘占用达到上限(如 10%)
  • 配置位置:
/etc/systemd/journald.conf

关键参数:

MaxRetentionSec=
MaxDiskUsage=

4️⃣ PM2

pm2 logs
  • 日志在:
~/.pm2/logs/
  • 默认不自动删除
  • 需要自己配置 logrotate

5️⃣ Docker

docker logs container
  • 默认:
    • json-file 驱动
    • 不限制时间
  • 推荐配置:
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

✅ 总结一句话

Node.js 日志在 Linux 上默认“永久存在”,存多久完全由你或系统配置决定。

如果你愿意,可以告诉我:

  • 你是用 console.log 还是写文件?
  • 是否用 PM2 / Docker / systemd?

我可以给你一套具体可落地的日志保留方案

0