如何在Rails中过滤日志

时间:2015-08-27 01:57:11

标签: ruby-on-rails logging

在我的Rails应用制作模式中,我将错误日志级别设置为error

但我想为某些控制器设置一个动作(或路由)到级别access,那么我怎么能意识到这一点呢?如果日志有过滤器?

1 个答案:

答案 0 :(得分:0)

您可以使用around filter调整操作的日志记录级别,例如:

class MyBigFancyController < ApplicationController
  around_action :adjust_logging_level_to_access, only: :show

  def show
  end

  private

  def adjust_logging_level_to_access
    old_level = Rails.logger.level 
    Rails.logger.level = Logger::DEBUG
    yield
    Rails.logger.level = old_level
  end
end

如果必须在许多控制器中执行此操作,请考虑将其移至ApplicationController。

请注意adjusting the Rails logging level at run time is not thread safe。如果您需要线程安全,则需要手动写入相关位置的日志。