2011-01-12 317 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