2013-12-20 50 views
0

我已經建立了在初始化一個自定義記錄器:Rails的自定義記錄程序寫入日誌偶爾

# /config/initializers/logging.rb 

log_file = File.open("#{Example::Application.config.root}/log/app.log", "a") 
AppLogger = ActiveSupport::BufferedLogger.new(log_file) 
AppLogger.level = Logger::DEBUG 
AppLogger.auto_flushing = true 
AppLogger.debug "App Logger Up" 

雖然創建日誌文件,當我啓動應用程序,它不寫入日誌文件。可以從初始化程序中的AppLogger.debug "App Logger Up"或正在運行的應用程序中的其他地方使用類似的代碼。

但是,間歇性地,我確實在文件中找到了日誌語句,雖然看起來沒有任何模式。看起來它會緩衝日誌消息並在感覺到它時拋棄它們。但是我將auto_flushing設置爲true,這會導致它立即刷新緩衝區。

這是怎麼回事,我該如何得到它的工作?

注意:用$ tail -f "log/app.log"拖尾日誌也不會改變。

我正在使用POW,但我也嘗試過使用WEBrick並獲得相同(缺少)結果。

回答

1

發現到接受的答案評論回答上this問題:

我說:

log_file.sync = true 

現在它的工作原理。

+0

@ pedr..Hi我想寫日誌文件僅用於來自數據庫的api調用..需要你的幫助..也試過你的上面的代碼來寫日誌,但它沒有幫助我,因爲它沒有寫在日誌文件 – Catmandu

相關問題