2012-05-17 47 views
8

我的軌道記錄器的配置目前記錄當前的時間和UUID,像這樣:使用rails標記的日誌記錄,如何記錄消息的日誌級別?

config.logger = ActiveSupport::TaggedLogging.new(Logger.new("#{Rails.root}/log/#{ENV['RAILS_ENV']}.log", 'daily')) 
config.log_tags = [Proc.new {Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')}, :uuid] 

有沒有辦法也記錄當前消息的日誌級別?

即,如果我調用logger.debug,則將標籤[DEBUG]添加到消息中。

回答

8

Railscasts展示瞭如何通過重寫SimpleFormatter#調用方法重寫記錄器輸出日誌消息的嚴重性:

class Logger::SimpleFormatter 
    def call(severity, time, progname, msg) 
    "[#{severity}] #{msg}\n" 
    end 
end 

詳情請參見http://railscasts.com/episodes/56-the-logger-revised

-4

我將MyApp :: Application.config.log_level添加到日誌標記中,它對我很有用。

config.log_tags = [Proc.new {Time.now.strftime('%Y-%m-%d %H:%M:%S.%L')}, :uuid, Proc.new {MyApp::Application.config.log_level}] 
+6

據我所知,這是爲應用程序定義的最低日誌級別,而不是單個消息的日誌級別。 – Ovesh