Nodejs应用程序的Logrotation

时间:2018-01-21 12:24:27

标签: node.js logging npm logrotate log-rotation

我正在开发一个非常古老的Nodejs应用程序,它使用forever-monitor创建一个新的子进程。此子进程的日志仅由forever-monitor处理。这就是配置的样子:

var child = new (forever.Monitor)(__dirname + '/../lib/childprocess.js', {
   max: 3,
   silent: true,
   options: [program.port],
   'errFile': __dirname + '/../childprocess_error.log',
   'outFile': __dirname + '/../childprocess_output.log'
}
);

在此设置中,一切正常。新要求是每12小时轮换一次这些日志。即每12个小时创建一个新文件,该文件将包含此文件childprocess_output.log的所有内容,并应存储在其他目录中。新的日志文件显然会在名称的末尾附加时间戳(例如:childprocess_output_1239484034.log)。

应重置原始文件childprocess_output.log,即应删除其所有内容,并且应从新鲜开始记录。

我试图了解我应该为此目的使用哪个npm库。我google了一下,发现了一些符合我要求的npm库,但是这些库的下载次数非常少,所以我怀疑这些库的可靠性。

NodeJs开发人员使用哪个库进行日志轮换?

另外,如果我在Node中找不到合适的库,我最后的办法就是使用Linux工具Logrotate。我正在避免使用Logroate,因为我希望我的应用程序处理场景而不依赖于实例配置。

1 个答案:

答案 0 :(得分:0)

您可以使用: fs(the file system library)使用 statSync renameSync 之类的方法处理,并结合了try-catching块代码。