在Debian系统上,Node.js 跑久了,日志文件总得有个管理方案。手动清理太麻烦,放任不管又容易撑爆磁盘。这时候,logrotate 就是那个靠谱的“管家”——它能自动帮你按规则轮转、压缩、清理日志。下面就直接说操作步骤,不绕弯子。

-
首先确认系统里有没有
logrotate。大概率是预装的,如果没有,更新一下包索引然后装上去就行:sudo apt-get update sudo apt-get install logrotate -
这一步很关键:你的 Node.js 应用在写日志时,要确保输出走的是标准输出(stdout)或标准错误(stderr)。比如直接使用
console.log()或console.error(),这样logrotate才能识别并操作对应的日志文件。如果应用自己把日志写到自定义路径,需要额外配置,这里先按标准情况来。 -
在
/etc/logrotate.d/目录下新建一个配置文件,名字随意,比如就叫nodejs:sudo nano /etc/logrotate.d/nodejs -
里面填上这样的配置内容:
/path/to/your/nodejs/app.log { daily rotate 7 compress missingok notifempty create 0640 root adm }解释一下每一行的意思:
/path/to/your/nodejs/app.log—— 替换成你应用实际的日志文件路径。daily—— 每天轮转一次。rotate 7—— 保留最近7天的日志备份。compress—— 轮转后自动压缩成 gz 格式,省空间。missingok—— 如果日志文件不存在,不报错,直接跳过。notifempty—— 空日志文件不轮转,避免无意义操作。create 0640 root adm—— 轮转后新建一个空日志文件,权限 0640,属主 root,属组 adm。
-
保存退出。之后
logrotate就会按这套规则每天自动干活了。如果想测试一下或者立即生效,可以手动触发轮转:sudo logrotate -f /etc/logrotate.d/nodejs强制跑一次,检查配置是否正常,日志文件是否按预期轮转、压缩。
这样一套下来,Node.js 的日志管理就自动化了,再也不用担心日志文件无限膨胀。如果有特殊需求(比如按大小轮转、多文件轮转),在同一个配置文件里改参数就行,灵活得很。