5

在 Rails 配置文件中,您可以设置:

config.log_level = :debug
config.log_tags = [:uuid, lambda { |req| Time.now } ]

但是,这仅在使用 Rails.logger 时有效。我知道您可以创建自定义标记记录器。但是语法有点冗长:

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged("BCX") { Logger.info "Stuff" }  

无论如何我可以使用 log_tags 配置自定义记录器,所以我不必每次都指定要使用哪些标签?我确定我可以为此创建一个自定义类,但是有内置的方法可以做到这一点吗?谢谢!

4

1 回答 1

-2

感谢这个要点,我能够弄清楚: https ://gist.github.com/1278448

我什至不需要使用格式化的记录器,只需要继承 Logger:

class NepcoLogger < Logger
  def format_message(severity, timestamp, progname, msg)
    "#{timestamp.to_formatted_s(:db)} #{severity} #{msg}\n"
  end 
end
于 2013-01-25T20:03:46.060 回答