2013-05-06 32 views
2

我是Ruby/Rails新手,但不是開發新手。如何在Rails中啓用日誌記錄?

我在iniatializer.rb定義如下代碼:

def logger 
    if defined?(RAILS_DEFAULT_LOGGER) 
    RAILS_DEFAULT_LOGGER 
    else 
    nil 
    end 
end 

我希望能夠在我的Ruby/Rails應用程序的消息的日誌記錄。

並且在一些的Ruby/Rails代碼,我有

logger.info "Email attachment: #{size} #{filename}" 

\紅寶石\ BIN>紅寶石--version給出: 紅寶石1.8.7(2010-01-10 PATCHLEVEL 249)[I386-的mingw32 ]

我該如何更改記錄器定義,以便logger.info進入一個我可以打開並閱讀的文件?請包括必要的要求/包括。

謝謝。

回答

3

如果你的軌道< 3.X然後用下面的代碼

def logger 
    if defined?(RAILS_DEFAULT_LOGGER) 
    Logger.new('log/my_log.log') 
    else 
    nil 
    end 
end 

如果導軌> 3.X然後用Rails.logger在上面的代碼

def logger 
    if defined?(Rails.logger) 
    Logger.new('log/my_log.log') 
    else 
    nil 
    end 
end 
+0

問題非常具體。我將如何更改記錄器定義,而不是寫新代碼... 謝謝。 – chuacw 2013-05-07 06:27:23

+1

在您的記錄器定義中,只需在您的if塊中使用「Logger.new('log/my_log.log')」重新使用RAILS_DEFAULT_LOGGER即可。不改變condition.so你的代碼是'如果界定?(RAILS_DEFAULT_LOGGER) Logger.new(「登錄/ my_log.log」) 其他 零 end' – 2013-05-07 06:38:52

+0

的Subbarao,弗雷德裏克說RAILS_DEFAULT_LOGGER已被移除,所以將你的代碼幫幫我??? – chuacw 2013-05-07 06:41:12

1

RAILS_DEFAULT_LOGGER很久以前就被刪除了。新名稱是Rails.logger。這將在軌道加載時爲您創建。

+1

更換RAILS_DEFAULT_LOGGER還有什麼我可以用你的答案做。 如何檢查Rails.logger是否正在記錄到日誌文件中?如果它未啓用,我該如何啓用它?我如何設置它? 告訴我它已被刪除或不推薦使用,因此無法繼續使用。我需要啓用日誌記錄。請提供有用的信息。 – chuacw 2013-05-06 07:58:27

+0

我的觀點是你不需要做任何事情 - 只需要使用Rails.logger(默認爲log/development.log) – 2013-05-06 08:08:38

+0

Frederick,所以在上面的代碼中,因爲RAILS_DEFAULT_LOGGER已經被刪除了,那麼還是不這樣做平均記錄器被定義爲零?所以,這並不意味着我仍然需要做點什麼嗎? – chuacw 2013-05-06 08:22:59