我想在 rails 中创建一个单独的 logger 存放一些错误的日志(model, controller 都要用到),而不是直接放在 production.log 里面,谁有好的方法?
new_logger = Logger.new('log/exceptions.log') new_logger.info "exceptions log..."
使用 log4r。可以自己制定存放文件,格式等。 http://51itbk.sinaapp.com/09_02_2012/116.html
請參考我的拙作 https://github.com/lulalala/multi_logger
你可以创建一个类去继承 ActiveSupport::BufferedLogger,这样就可以调用 rails 的 log,并且还能自定义路径,什么方法都不用自己写了
class SLogger < ActiveSupport::BufferedLogger def initialize(log_name = 'spider', path = "") log_path = File.join(Rails.root, 'log', path.to_s, "#{log_name}.log") super(log_path) end def info(msg) super("[#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}] -- : #{msg}\n") end alias_method :echo, :info end
#4 楼 @quincycheung 请问应该放哪里?
lib 下面