Rails.logger

总是使用 Rails.logger.{debug|info|warn|error|fatal} 而不是 puts。这允许你的日志适合标准日志格式,具有时间戳并具有级别,因此你可以选择它们是否足够重要以在特定环境中显示。你可以使用 rails app 环境名称在 log/目录下查看应用程序的单独日志文件。喜欢:development.logproduction.logstaging.log

你可以使用 LogRotate 轻松旋转 rails 生产日志。你只需进行如下小配置即可

用你最喜欢的 linux 编辑器 vimnano 打开/etc/logrotate.conf,并在底部的此文件中添加以下代码。

/YOUR/RAILSAPP/PATH/log/*.log { 
  daily
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  copytruncate
}

那么,如何工作的这非常简单。配置的每一位都执行以下操作:

  • 每日 - 每天轮换日志文件。你也可以在此处使用每周或每月。
  • missingok - 如果日志文件不存在,请忽略它
  • 旋转 7 - 仅保留 7 天的日志
  • compress - 旋转时 GZip 日志文件
  • delaycompress - 旋转文件一天,然后第二天压缩它,这样我们就可以确定它不会干扰 Rails 服务器
  • notifempty - 如果日志为空,请不要旋转文件
  • copytruncate - 复制日志文件,然后清空它。这可以确保 Rails 写入的日志文件始终存在,因此你不会遇到问题,因为文件实际上没有更改。如果你不使用它,则每次都需要重新启动 Rails 应用程序。

运行 Logrotate 由于我们刚刚编写了此配置,因此你需要对其进行测试。

要手动运行 logrotate,只需执行:sudo /usr/sbin/logrotate -f /etc/logrotate.conf

而已。