0
如何使Rails日誌記錄在所有環境中均等工作?使一致的Rails日誌記錄
- 當前,當我在Windows/WEBrick環境中使用
puts
登錄時,輸出會顯示在控制檯中,但不會出現在標準日誌文件中。 - 當我使用
Rails.logger
時,消息僅記錄到日誌文件。
當我同時使用,這使得問題的Apache /客運環境,因爲所有的控制檯輸出被記錄到日誌文件,我得到每個日誌事件雙線。
如何使Rails日誌記錄在所有環境中均等工作?使一致的Rails日誌記錄
puts
登錄時,輸出會顯示在控制檯中,但不會出現在標準日誌文件中。Rails.logger
時,消息僅記錄到日誌文件。當我同時使用,這使得問題的Apache /客運環境,因爲所有的控制檯輸出被記錄到日誌文件,我得到每個日誌事件雙線。
您不應該使用puts
進行實際記錄。它可能對調試很有用,但它不是一個合適的日誌記錄機制。
如果你想記錄一些東西,那麼正確的方法是使用Rails.logger
。
Rails.logger.info "something"
默認情況下,記錄器僅記錄日誌文件。某些服務器(如Passenger)也用於在控制檯中輸出日誌,但這不是標準行爲。
如果您還想在控制檯中進行日誌記錄,則可以設置記錄器在開發環境中的行爲不同(例如)。只需使用自定義操作創建一個新的記錄器。
Rails的記錄器是一個ActiveSupport::Logger
,它從紅寶石Logger
繼承
例如,要記錄在控制檯中發展分配在開發環境
Rails.logger = ActiveSupport::Logger.new(STDOUT)
如果你想登錄以下兩個記錄儀到文件和控制檯,創建代理每個記錄器的自定義記錄器類。調用兩個實例,一個是文件記錄器,另一個是控制檯記錄器。
但是,最簡單的想法是tail -f
另一個控制檯選項卡中的開發日誌可以訪問日誌條目。