Rails 记录器格式字符串配置 [英] Rails logger format string configuration

查看:28
本文介绍了Rails 记录器格式字符串配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何配置 rails 记录器以另一种格式输出其日志字符串?我想得到一些信息更丰富的东西,比如:

How can I configure the rails logger to output its log strings in another format? I would like to get something that is more informative like:

[日志级别] [时间] [消息]

[Log Level] [Time] [Message]

调试:01-20-2008 13:11:03.00:方法调用

Debug : 01-20-2008 13:11:03.00 : Method Called

当我想跟踪我的 development.log 以获取仅来自特定日志级别的消息(例如调试)时,这真的很有帮助.

This would really help me when I want to tail my development.log for messages that only come from a certain log level, like debug.

推荐答案

做了一些挖掘,发现 这篇 RubyOnRails Talk 谷歌组中的帖子.

Did some digging and found this post in the RubyOnRails Talk google group.

所以我稍微修改了一下,放在我的environment.rb的最后:

So I modified it a little bit and put it at the end of my environment.rb:

module ActiveSupport
  class BufferedLogger
    def add(severity, message = nil, progname = nil, &block)
      return if @level > severity
      message = (message || (block && block.call) || progname).to_s

      level = {
        0 => "DEBUG",
        1 => "INFO",
        2 => "WARN",
        3 => "ERROR",
        4 => "FATAL"
      }[severity] || "U"

      message = "[%s: %s #%d] %s" % [level,
                                     Time.now.strftime("%m%d %H:%M:%S"),
                                     $$,
                                     message]

      message = "#{message}
" unless message[-1] == ?

      buffer << message
      auto_flush
      message
    end
  end
end

这会导致格式字符串如下:

This results in a format string like this:

[DEBUG: 0121 10:35:26 #57078] 渲染布局/_header (0.00089)

[DEBUG: 0121 10:35:26 #57078] Rendered layouts/_header (0.00089)

这篇关于Rails 记录器格式字符串配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆