是否可以在Rails 5中的before操作中初始化Logger?

时间:2017-02-25 00:43:33

标签: ruby-on-rails ruby-on-rails-5

class ApplicationController < ActionController::Base    
  before_action :init_logger

  def home
    logger.info 'test'
  end

  def init_logger
    logger = MyLogger.new(env)
    Rails.logger = logger
  end
end

这不能按预期工作,因为home操作中的记录器与before操作中的记录器不同。主动作中的记录器是默认的Rails记录器。

如何在之前的操作中设置Rails记录器?

1 个答案:

答案 0 :(得分:0)

如果您尝试仅为应用程序控制器执行

然后尝试以下

def logger
        @logger
end

def init_logger
    @logger = MyLogger.new(env)
 end

如果你想为所有人做,那么你需要在environment.rb文件中初始化

How to get Rails.logger printing to the console/stdout when running rspec?