新手问题 rails 如何创建单独的 logger

jasonliu · 2014年03月17日 · 最后由 quincycheung 回复于 2017年08月31日 · 3116 次阅读

我想在 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

你可以创建一个类去继承 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 请问应该放哪里?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号