温馨提示×

怎样清理nodejs历史日志

小樊
51
2026-09-26 18:18:38
栏目: 编程语言

清理 Node.js 的“历史日志”通常取决于日志是写在哪里的、由谁生成的。下面按常见场景给你一套实用方案。


一、先确认日志来源(很重要)

Node.js 本身不会自动产生日志文件,日志一般来自:

  1. 业务代码(console.log / winston / pino 等)
  2. 进程管理器(PM2、forever)
  3. 容器 / 系统(Docker、systemd)
  4. 崩溃日志(core dump、uncaughtException)

二、常见场景及清理方法

1️⃣ PM2 日志(最常见)

PM2 默认日志在:

~/.pm2/logs/

查看:

pm2 logs

清理(不删进程):

pm2 flush

或手动删:

rm -rf ~/.pm2/logs/*

2️⃣ 应用自己写的日志文件

例如:

logs/
app.log
error.log

直接删:

rm -f logs/*.log

⚠️ 注意:

  • 如果程序正在写日志,不要直接 rm 大文件(可能磁盘不释放)
  • 推荐方式:
# 清空而不是删除
: > logs/app.log

3️⃣ Docker 容器日志

查看位置:

docker inspect <容器名> | grep LogPath

清理:

truncate -s 0 /var/lib/docker/containers/xxx/xxx-json.log

或限制日志大小(推荐):

logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

4️⃣ systemd 服务日志

Node 作为系统服务运行:

journalctl -u your-node-service

清理:

journalctl --vacuum-time=7d
# 或
journalctl --vacuum-size=500M

5️⃣ 崩溃 / 异常日志

  • npm-debug.log
  • core dump
  • uncaughtException 文件
rm -f npm-debug.log
rm -f core.*

三、推荐:从根上解决(日志轮转)

不要手动清,用工具自动管理:

✅ winston + rotate

require('winston-daily-rotate-file')

✅ logrotate(Linux)

/var/log/nodeapp/*.log {
  daily
  rotate 7
  compress
  missingok
  notifempty
}

四、一句话总结

清日志 = 找来源 + 安全清空 + 加轮转

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

  • 用的是 PM2 / Docker / 裸 Node?
  • 日志文件路径或截图

我可以直接给你精准命令。

0 踩