我正在开发一个非常古老的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,因为我希望我的应用程序处理场景而不依赖于实例配置。
答案 0 :(得分:0)
您可以使用: fs(the file system library)使用 statSync 和 renameSync 之类的方法处理,并结合了try-catching块代码。