我在Debian服务器上运行了几个Rails 3.0站点。目前,所有日志都放入RAILS_ROOT/log/production.log (每个站点的RAILS_ROOT)
我想要更改这一点,以便所有日志记录都通过rsyslog并放在:
/var/log/rails/site1.log
/var/log/rails/site2.log
etc.还可以让这些日志每天自动轮换。
这是怎么做的?
/ Carsten
发布于 2012-05-30 01:26:28
在过去,我曾使用syslog-logger gem来实现这一点。
您可以在初始化器中进行设置:
config.logger = Logger::Syslog.new("site1", Syslog::LOG_LOCAL5)在最近的ruby版本中,标准库中也有syslog/logger -用法基本相同。
开始记录到syslog,而不是默认的文本文件。接下来发生的是系统日志配置问题-您需要创建rsyslog规则来定义数据的去向
最简单的事情可能是这样的
!site1 /var/log/site1.log它使用程序名"site1“(Logger::Syslog的第一个参数)指示所有内容。
您还可以做更多的事情,例如,您可以将日志消息转发到中央日志服务器,该服务器将所有日志消息聚合到一个文件中,这样您就不必查看每个应用程序实例的一个日志文件。
对于日志轮换,我使用logrotate -我相信rsyslog实际上可以在内部处理这类事情,但我不知道细节。
https://stackoverflow.com/questions/10794602
复制相似问题