当前位置:  开发笔记 > 后端 > 正文

Rails记录器格式字符串配置

如何解决《Rails记录器格式字符串配置》经验,为你挑选了1个好方法。

如何配置rails logger以另一种格式输出其日志字符串?我想得到一些更具信息性的东西:

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

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

当我想在我的development.log中找到仅来自某个日志级别的消息(例如debug)时,这对我有用.



1> Bill..:

做了一些挖掘并在RubyOnRails Talk谷歌小组中发现了这篇文章.

所以我稍微修改了它并将它放在我的环境结尾.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}\n" unless message[-1] == ?\n
      buffer << message
      auto_flush
      message
    end
  end
end

这会产生如下格式字符串:

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


在3.2 Rails中切换到使用ActiveSupport :: TaggedLogger.您可以在environment.rb中设置config.log_tags,指定要使用的前缀(例如,config.log_tags = [:uuid,:remote_ip,Time.now]).我还没想出如何包含日志级别.
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有