2014-04-25 40 views
0

我們如何在兩個不同的地方記錄單個事件?說STDOUT和其他一些日誌文件?同時登錄兩個地方 - rails

+0

沒你給一個嘗試Logger.EVENTS會 – Dave

+0

@戴夫我創建一個_logger = Logger.new(「#{Rails.root} /log/my.log」)然後記錄我使用_logger.info(「我的日誌消息」)。無論如何,我可以爲兩個不同的地點創建_logger嗎?我可以創建兩個不同的變量,並單獨做.info,但這對我來說似乎不是一個好方法。 – shivam

+1

你是什麼意思,由兩個不同的地點準確 – Dave

回答

1

從任何模型中自己創建一個Logger對象。只是通過文件名來構造和使用對象一樣平常Rails的記錄器

class User < ActiveRecord::Base 
    def my_logger 
    @@my_logger ||= Logger.new("#{Rails.root}/log/my.log") 
    end 

    def before_save 
    my_logger.info("Creating user with name #{self.name}") 
    end 
end 

UPDATE:

你可以使用寶石multi logger

+0

這正是我正在做的。但正如你所看到的,你只在「@@ my_logger || = Logger.new(」#{Rails.root} /log/my.log「)」中提供了一個輸出文件。我希望我能夠添加兩個不同的輸出文件。感謝您提供寶石建議,儘管我希望手動這樣做。 – shivam

+0

我們不能創建另一個@@ my_logger對象嗎?如果不是爲什麼? – Dave

+0

是的,我們可以,但問題是我通過記錄器功能。在那種情況下,我將不得不傳遞兩個記錄器變量。雖然我的問題將得到解決,但我不認爲它是一個很好的解決方案。 – shivam

相關問題