gpt4 book ai didi

node.js - 在不中断 forever 进程的情况下减小 .forever 日志文件的大小

转载 作者:搜寻专家 更新时间:2023-11-01 00:08:05 31 4
gpt4 key购买 nike

forever 创建的日志文件(在 /root/.forever 中)已经达到了很大的大小,几乎填满了硬盘。

如果在 forever 进程仍在运行时删除日志文件,forever logs 0 将返回 undefined。恢复记录当前 forever 进程的唯一方法是停止它并再次启动 Node 脚本。

有没有一种方法可以在不中断日志记录或 forever 进程的情况下只修剪日志文件?

最佳答案

因此 Foreverjs 将继续写入同一个文件句柄,理想情况下会支持允许您向它发送信号并旋转到不同文件的东西。

没有它,需要更改 Forever.js 包的代码,您的选项如下所示:

命令行版本:

  1. 做好备份
  2. 清空文件

cp forever-guid.log 备份 && :> forever-guid.log;

如果您以快速的速度写入日志文件,这有轻微的风险,您最终会在备份和清零之间写入日志行,从而导致日志行丢失。

使用带复制截断的 Logrotate

您可以设置 logrotate 以监视永久日志目录,以根据文件大小或时间自动复制和截断。

让你的 Node 代码处理这个

您可以让您的日志记录代码查看日志文件的行数,然后执行复制截断 - 这可以让您避免潜在的数据丢失。

编辑:我原本认为 splittruncate 可以完成这项工作。他们可能可以,但是实现看起来真的很尴尬。 Split 没有将文件拆分为短文件(原始日志)和长文件(备份)的好方法。 Truncate(除了它并不总是被安装的事实之外)不会重置写指针,因此永远只会写入它应该拥有的相同字节,从而导致奇怪的数据。

关于node.js - 在不中断 forever 进程的情况下减小 .forever 日志文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410087/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com