在您的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配置自定义记录器,所以我不必每次都指定使用哪些标签?我确信我可以为此创建一个自定义类,但有没有内置的方法来做到这一点?谢谢!
答案 0 :(得分:-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