Rails记录器格式字符串配置 [英] Rails logger format string configuration
问题描述
如何配置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]
Debug: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.
推荐答案
Did some digging and found this post in the RubyOnRails Talk google group.
因此,我对其进行了一些修改,并将其放在环境的末尾.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}\n" unless message[-1] == ?\n
buffer << message
auto_flush
message
end
end
end
这将导致如下所示的格式字符串:
This results in a format string like this:
[DEBUG:0121 10:35:26#57078]呈现的布局/标题(0.00089)
[DEBUG: 0121 10:35:26 #57078] Rendered layouts/_header (0.00089)
这篇关于Rails记录器格式字符串配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!