【发布时间】:2018-10-24 05:42:15
【问题描述】:
我正在寻找一种将日志从 NodeJS 写入文件的方法。我正在使用 fs.appendFile 选项。有没有办法通过保持文件大小不变来继续添加文件 - 例如,如果文件超过 5 MB 并且有新行进入,请删除最旧的行以适应新行 - 有点像滚动基础?
【问题讨论】:
标签: node.js filesystems fs appendfile
我正在寻找一种将日志从 NodeJS 写入文件的方法。我正在使用 fs.appendFile 选项。有没有办法通过保持文件大小不变来继续添加文件 - 例如,如果文件超过 5 MB 并且有新行进入,请删除最旧的行以适应新行 - 有点像滚动基础?
【问题讨论】:
标签: node.js filesystems fs appendfile
如果您愿意使用库而不是附加文件进行日志记录。您可以将winston 与Daily rotate file Transport 一起使用,您可以将文件大小限制在5MB 或天数或两者兼有。
我建议压缩日志并将它们保存几天/几周,并设置一个 cron 作业或其他东西来删除旧文件。如果你真的想删除所有日志,你可以在轮换时删除
transport.on('rotate', function(oldFilename, newFilename) {
fs.unlinkSync('<log-file-name>')
});
通常日志轮换由操作系统使用logrotate之类的东西处理
【讨论】: