2011-07-16 51 views
0

我有一個Rails 3應用程序。 使用默認日誌記錄配置,當我發出像Rails:原因日誌配置顯示控制檯和日誌文件之間的區別?

logger.warn "some message" 

記錄器消息的命令將顯示在控制檯和日誌。

現在我添加一行到production.rb

config.logger = Logger.new(Rails.root.join("log","biteme.log")) 

記錄器消息未出現在控制檯,只有日誌。 後來我就改成這樣:出現在控制檯和日誌

config.logger = Logger.new(config.paths.log.first) 

而現在的消息。這裏有一些我不知道的知識,因爲它沒有意義,爲什麼第一個配置會忽略去控制檯的日誌消息。有任何想法嗎?

+0

第一個對象是一個字符串,第二個對象一個路徑,我猜測記錄器的行爲是有條件的 – apneadiving

回答

0

Rails實際上現在使用ActiveSupport::BufferedLogger而不是ruby的標準Logger類。

嘗試使這個類的自定義記錄器,看看它的工作原理:

config.logger = ActiveSupport::BufferedLogger.new(Rails.root.join("log","biteme.log")) 
+0

我現在已經使用它,因爲它似乎是這樣做的軌道標準方式。 – rtfminc

0

終於拿到下降到問題的根源。我正在使用與Heroku中的日誌衝突的jasonp gem。在本地,沒有問題(當然),但從Heroku運行,日誌消息沒有出現。當我刪除了Heroku上出現的寶石日誌消息時。 現在是快樂的露營者。