2011-01-12 238 views
2

我使用mod_passenger在Apache上运行Rails应用程序。我希望Rails.logger调用写入Apache错误日志,而不是写入log/production.log中的应用程序日志文件。Rails日志记录到Apache日志而不是应用日志

我该怎么做?

+0

虽然这不是我的问题的答案,但我决定采取不同的方式。一个问题是Rails应用程序的`log /`日志文件会变得太大。我现在使用logrotate来解决这个问题。它将Apache日志和Rails应用程序日志文件之间的日志消息分开,但我只能忍受这一点。 – rlandster 2011-01-28 05:53:11

回答

1

在你的config /环境/ production.rb文件,你可以添加类似:

config.logger = Logger.new("/var/log/apache2/error.log") 

当然,你的应用程序将需要有权这样的文件。另外,将Apache错误与应用程序日志混合在一起绝对不是一个好主意。

+0

这不会覆盖任何Apache写的东西吗? – 2011-01-13 01:00:06

+0

不错的想法,但它很可能会导致错误日志中的交错。也就是说,由于两个进程在不相互锁定的情况下写入相同的文件,它们的消息可能会一起被破坏。 – noodl 2011-01-13 01:00:36

1

这并不直接回答你的问题,但我刚刚运行一些测试,STDERR.puts "meep"在使用mod_passenger的同时结束了Apache的错误日志。

也许那么你可以指向config.loggerSTDERR