Rails日志记录到Apache日志而不是应用日志
我使用mod_passenger在Apache上运行Rails应用程序。我希望Rails.logger
调用写入Apache错误日志,而不是写入log/production.log
中的应用程序日志文件。Rails日志记录到Apache日志而不是应用日志
我该怎么做?
在你的config /环境/ production.rb文件,你可以添加类似:
config.logger = Logger.new("/var/log/apache2/error.log")
当然,你的应用程序将需要有权这样的文件。另外,将Apache错误与应用程序日志混合在一起绝对不是一个好主意。
这不会覆盖任何Apache写的东西吗? – 2011-01-13 01:00:06
不错的想法,但它很可能会导致错误日志中的交错。也就是说,由于两个进程在不相互锁定的情况下写入相同的文件,它们的消息可能会一起被破坏。 – noodl 2011-01-13 01:00:36
这并不直接回答你的问题,但我刚刚运行一些测试,STDERR.puts "meep"
在使用mod_passenger的同时结束了Apache的错误日志。
也许那么你可以指向config.logger
在STDERR
?
虽然这不是我的问题的答案,但我决定采取不同的方式。一个问题是Rails应用程序的`log /`日志文件会变得太大。我现在使用logrotate来解决这个问题。它将Apache日志和Rails应用程序日志文件之间的日志消息分开,但我只能忍受这一点。 – rlandster 2011-01-28 05:53:11