我有一個紅寶石控制檯應用程序。當我在我的開發機器上用irb檢查它時,它會記錄好的。但是,當我在VM中運行它時,ruby logger會丟失格式,即它只記錄消息,而沒有日期和嚴重性。現在通過設置格式Logger.formatter = proc { |severity, datetime, progname, msg| ...}
來解決這個問題。但我很好奇,爲什麼會發生這種情況?我搜索了一下,發現在Rails應用程序中可能會發生這樣的老信息。這是一個已知的問題?我花了一些時間來調試。紅寶石記錄器丟失格式化
3
A
回答
2
您是require
不同的gem在不同的環境中,或者它可能是IRB本身設置日誌格式?如果將require 'irb'
添加到應用程序會發生什麼情況,這是否也會更改格式?
格式存儲在全局變量中,任何gem都可以覆蓋它。當我require
d一個寶石,然後require
d ActiveRecord,它設置日誌格式,我一直被類似的問題咬。
它只是表明使用全局變量進行配置有多糟糕,這在Ruby gems中非常常見。
1
僅供參考在Rails 3中,這已更改,它不再是Class方法,而是實例方法。 這樣它就不會在所有實例和寶石之間共享,不會再影響您的登錄偏好。
這意味着Rails 3中要求該代碼來更改格式爲只記錄器實例:
log = Logger.new('file.log')
log.formatter = proc { |severity, datetime, progname, msg| ...}
相關問題
- 1. 如何格式化紅寶石記錄器?
- 2. 如何格式化紅寶石記錄器到這個?
- 3. 格式紅寶石
- 4. 使用紅寶石線格式化
- 5. 時間格式化紅寶石
- 6. 紅寶石複數格式化分區
- 7. 格式化紅寶石散列json
- 8. 如何格式化紅寶石代碼
- 9. 格式化Modbus請求在紅寶石
- 10. 紅寶石文檔丟失的東西
- 11. 紅寶石日期格式
- 12. 如何格式化通過紅寶石寶石電子表格單元格?
- 13. 寶石安裝紅寶石debug19失敗
- 14. 紅寶石寶石加載失敗
- 15. 紅寶石:秒格式編號,以格式化的時間
- 16. 紅寶石字符串格式格式化
- 17. 紅寶石更新活動記錄
- 18. 記錄聲音紅寶石,窗戶
- 19. 刪除紅寶石用戶記錄
- 20. 紅寶石記錄便捷方法
- 21. 紅寶石記錄文件的行爲
- 22. 紅寶石GraphViz二叉樹記錄
- 23. 紅寶石klout寶石包括變化
- 24. 本地化軌道紅寶石寶石
- 25. 紅寶石VCR寶石一直記錄相同的請求
- 26. 「資源」 - 紅寶石寶石的目錄
- 27. 將紅寶石日期轉換爲字符串而不丟失格式
- 28. 紅寶石(在導軌上)基本形式標記的寶石
- 29. 處理紅寶石「失敗......」
- 30. 比較失敗 - 紅寶石
正確的金錢!我''需要'active_support/core_ext',因爲我使用了一些輔助方法,即'classify'和'constantize'。 – 2011-02-12 15:16:30