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记录器?
答案 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?