ruby-on-rails - Rails 记录器格式字符串配置

标签 ruby-on-rails logging

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

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

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

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

最佳答案

做了一些挖掘和发现 this在 RubyOnRails Talk 谷歌组中发帖。

所以我稍微修改了一下,放到了我的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}\n" unless message[-1] == ?\n
      buffer << message
      auto_flush
      message
    end
  end
end

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

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

关于ruby-on-rails - Rails 记录器格式字符串配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/462651/

相关文章:

ruby-on-rails - 后端验证轨

c# - System.Diagnostics.StackTrace或System.Diagnostics.StackFrame用于调试?为什么

svn - 如何将 git log(或 svn log)限制为针对某个特定文件的修订?

ruby-on-rails - 重构 Rspec 规范

ruby-on-rails - rails : FATAL: Password Authentication Failed For User

javascript - Winston javascript 记录器正在创建两个单独的日志文件。如何将所有条目记录到一个文件中?

.net - 使用 Enterprise Library 登录到滚动 CSV 文件

Apache 错误日志 - 未添加未知过滤器 : includes

sql - Rails - 删除满足条件的所有记录

ruby-on-rails - Redis session 出现 Sidekiq Forbidden 错误