Bil*_*ill 16 logging ruby-on-rails
如何配置rails logger以另一种格式输出其日志字符串?我想得到一些更具信息性的东西:
[日志级别] [时间] [消息]
调试:01-20-2008 13:11:03.00:调用方法
当我想在我的development.log中找到仅来自某个日志级别的消息(例如debug)时,这对我有用.
Bil*_*ill 24
做了一些挖掘并在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
Run Code Online (Sandbox Code Playgroud)
这会产生如下格式字符串:
[DEBUG:0121 10:35:26#57078]渲染布局/ _header(0.00089)