问题描述
在我的 Rails 5 应用程序中,我有 'omniauth','~> 2.0.3'
,在我的配置 config/initializers/omniauth.rb
中,我将记录器附加到 Rails.logger
。
OmniAuth.config.logger = Rails.logger
我想要做的是如果日志级别是 error
我想使用 Rollbar 而不是 Rails 记录器。
有没有办法做到这一点?
解决方法
您可以创建一个代理记录器,将error
级别的日志委托给Rollbar
,其他级别将委托给Rails.logger
class ProxyLogger
delegate :error,to: :@error_logger
delegate_missing_to :@default_logger
def initialize(error_logger:,default_logger: Rails.logger)
@default_logger = default_logger
@error_logger = error_logger
end
end
OmniAuth.config.logger = ProxyLogger.new(error_logger: Rollbar)