我的Rails.logger很好用,非常感謝,但我會也喜歡它寫入STDOUT(也就是說,不要放棄登錄到日誌文件,而是要「發球臺「它輸出)。使Rails.logger tee寫入標準輸出
這可能在Rails 3中嗎?
我的Rails.logger很好用,非常感謝,但我會也喜歡它寫入STDOUT(也就是說,不要放棄登錄到日誌文件,而是要「發球臺「它輸出)。使Rails.logger tee寫入標準輸出
這可能在Rails 3中嗎?
底部在您的環境配置添加此
Rails.logger = Logger.new(STDOUT)
他希望他的記錄器寫入stdout和日誌文件,而不僅僅是標準輸出 – ksol 2013-02-19 09:10:11
好。我顯然跳過了他的問題的'也'部分。 – jvnill 2013-02-19 09:12:06
這仍然有用 – LetMeSOThat4U 2013-02-20 13:38:10
這個簡單的委託記錄應當(*)做的伎倆:
class MultiLogger
def initialize *loggers
@loggers = loggers
end
def method_missing *args, &blk
@loggers.each {|l| l.send *args, &blk }
end
def respond_to_missing? *args
@loggers.all? {|l| l.respond_to? *args }
end
end
Rails.logger = MultiLogger.new Rails.logger, Logger.new($stdout)
(*)我還沒有嘗試過
對不起,這不起作用:更多的寫入控制檯比日誌文件 - 在我的情況下,只有sql語句記錄,而控制檯也包含普通的「puts」和漂亮的打印機(PP.pp) 。雖然我不確定這是否是代碼的錯誤,因爲遺留代碼與日誌記錄有很大關係。 – LetMeSOThat4U 2013-02-21 12:13:28
好吧,顯然你的記錄不是全部都要經過記錄器。你沒有解釋爲什麼你需要這個功能。你不能只使用外部工具,例如:'tail -f'? – dbenhur 2013-02-21 15:54:29
您可以使用'ObjectSpace#each_object'在非日誌記錄日誌中作弊,以查找所有對您的日誌文件開放的'File'對象,並將它們重新打開到管道'| tee logfile'。 – dbenhur 2013-02-21 15:57:17
'tail -f $ YOUR_LOG_FILE'有什麼問題? – mudasobwa 2013-02-19 09:47:07