Rails3的“最佳实践”自定义日志记录选项有哪些?任何人都可以提出好的宝石或技术来记录。
一般来说,自定义,非控制器,非模型的东西是什么?如果我制作这样的自定义记录器:
#custom_logger.rb
class CustomLogger < Logger
def format_message(severity, timestamp, progname, msg)
"#{msg}\n"
end
end
logfile = File.open(RAILS_ROOT + '/log/custom.log', 'a') #create log file
logfile.sync = true #automatically flushes data to file
CUSTOM_LOGGER = CustomLogger.new(logfile) #constant accessible anywhere
(从here被盗)应该放在“/ lib”的文件中吗?在“application.rb”中?或者在初始化程序中?
我似乎无法找到任何描述与以前的Rails版本之间的这些微小差异的东西。
由于
答案 0 :(得分:2)
这个gem非常适合自定义日志输出: https://github.com/johmas/itslog
答案 1 :(得分:2)
我把我放在application.rb中,因为它只有几行。我很懒。如果你把你的类放在lib /的文件中,你必须手动要求它或设置lib / autoloading。
这是我的记录器代码:
application.rb中:
class DreamLogFormatter < Logger::Formatter
def call(severity, time, progname, msg)
"[%s(%d)%5s] %s\n" % [time.to_s(:short), $$, severity, msg2str(msg)]
end
end
...
config.logger = Logger.new(Rails.root.join('log', "#{Rails.env}.log"), 10, 30*1024*1024)
config.logger.formatter = DreamLogFormatter.new
注意我每30MB滚动一次日志并保留最后10个日志。
答案 2 :(得分:1)