Node.js NodeJS/Forever归档日志

Node.js NodeJS/Forever归档日志,node.js,forever,winston,Node.js,Forever,Winston,我正在使用运行我的节点应用程序。当我开始永久时,我指定在哪里写入日志。我还指定要附加到日志中。这里的问题是,我的日志将在几个月内失控 是否有任何方法可以每隔一段时间归档/滚动日志,即每天将日志文件中的内容滚动/归档到另一个文件(即server-2013-3-5.log)。这样,我可以根据需要删除/移出旧日志文件 我刚刚开始考虑使用Winston作为我的记录器,但我没有发现任何有用的东西 有什么想法吗?forever本身不支持原木轮换,而原木轮换对温斯顿来说仍然是一个难题 您可以使用logrota

我正在使用运行我的节点应用程序。当我开始永久时,我指定在哪里写入日志。我还指定要附加到日志中。这里的问题是,我的日志将在几个月内失控

是否有任何方法可以每隔一段时间归档/滚动日志,即每天将日志文件中的内容滚动/归档到另一个文件(即server-2013-3-5.log)。这样,我可以根据需要删除/移出旧日志文件

我刚刚开始考虑使用Winston作为我的记录器,但我没有发现任何有用的东西


有什么想法吗?

forever本身不支持原木轮换,而原木轮换对温斯顿来说仍然是一个难题

您可以使用
logrotate
,它包含在大多数Linux发行版中,用于旋转系统日志文件,也可由其他软件(如Apache)使用

将文件添加到
/etc/logrotate.d/

/path/to/server.log {
  daily         # how often to rotate
  rotate 10     # max num of log files to keep
  missingok     # don't panic if the log file doesn't exist
  notifempty    # ignore empty files
  compress      # compress rotated log file with gzip
  sharedscripts # postrotate script (if any) will be run only once at the end, not once for each rotated log
  copytruncate  # needed for forever to work properly
  dateext       # adds date to filename 
  dateformat %Y-%m-%d.
}

请参阅。

Winston现在可以进行日志旋转:
SharedScript
:“SharedScript意味着postrotate脚本只运行一次(在旧日志压缩后),而不是针对每个旋转的日志运行一次。”@JCM如何配置Winston中的永久使用此新功能?我是否必须将forever从命令行使用切换到编程使用?@sheldonh idk,您可能应该在forever项目中提出一个问题。使用此配置,my forever.log仍在无限期增长,logrotate只复制文件,而不接触不断增长的原始日志文件。。。,所以这个解决方案并不能完全解决这个问题。特别是“我的日志将失控”这一部分,你最终是如何解决的?