在保持文件大小不变的情况下附加到文件的方法

Way To Append To File While Keeping the File Size Constant

我正在寻找一种将日志从 NodeJS 写入文件的方法。我正在使用 fs.appendFile 选项。有没有办法通过保持文件大小不变来继续向文件中添加内容——例如,如果文件超过 5 MB 并且有新行进来,删除最旧的行以容纳新行——有点像在滚动基础?

如果您愿意使用库而不是 appendfile 进行日志记录。您可以使用 winston with the Daily rotate file Transport 将文件大小限制在 5MB 或一定天数或两者兼而有之。

我建议压缩日志并将它们保存一段时间 days/weeks 并设置一个 cron 作业或其他东西来删除旧文件。如果你真的想删除所有日志,你可以删除旋转

transport.on('rotate', function(oldFilename, newFilename) {
    fs.unlinkSync('<log-file-name>')
  });

通常,日志轮换由操作系统使用类似 logrotate

的方式处理