module Modelname
class ModelClass
def logger
@logger ||= Logger.new($stdout)
end
end
end end
OtherCLass < ModelClass
如何讓ModelClass擁有默認的日志,而OtherClass(Subclass)在一個檔案中擁有自定義的日志,如otherclass.log
。uj5u.com熱心網友回復:
你告訴ruby做你需要的事情。但要注意,在同一個檔案上的多個日志記錄器將不會相互配合,所以你最好在類物件上設定日志記錄器。
class ModelClass
def logger
self.class.logger
end。
def self.logger
@logger ||= begin
target = self == ModelClass ? STDOUT : "#{name}.log"
Logger.new(target)
end
end
end end
你將在每個類中有一個記錄器,除了基類將去STDOUT之外,所有的記錄器都將去往檔案。
但是為什么這么復雜呢?你可以直接將它們全部寫入檔案,然后 tail -f YourFile.log 在 stdout 上看到你想要的日志。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322770.html
標籤:
上一篇:Trix富文本編輯器在new.html.erb中作業,但在show.html.erb視圖中顯示代碼,而不是風格化的文本(在瀏覽器中顯示)。
