【问题标题】:Logrotation for a Nodejs ApplicationNodejs 应用程序的 Logrotation
【发布时间】:2018-06-30 04:57:29
【问题描述】:

我正在开发一个非常旧的 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.js 中找不到任何合适的库,我最后的手段是使用 Linux 工具 Logrotate。我正在避免使用 Logroate,因为我希望我的应用程序能够处理场景而不依赖于实例配置。

【问题讨论】:

  • 下面是一个简单的例子

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


【解决方案1】:

你可以使用: fs (the file system library) 使用 statSyncrenameSync 等方法以及 try-catch 块代码进行处理。

【讨论】:

  • 这应该是一条评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
相关资源
最近更新 更多