Skip to content

Commit

Permalink
FIX: Add compatibility with Rails 7.1+
Browse files Browse the repository at this point in the history
  • Loading branch information
Flink committed Feb 27, 2024
1 parent 94d5143 commit 98c7efa
Showing 1 changed file with 37 additions and 19 deletions.
56 changes: 37 additions & 19 deletions lib/logster/rails/railtie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,39 @@ module Logster::Rails
class Engine < Rails::Engine
end

def self.set_logger(config)
return unless Logster.config.environments.include?(Rails.env.to_sym)
class << self
def set_logger(config)
return unless Logster.config.environments.include?(Rails.env.to_sym)

require "logster/middleware/debug_exceptions"
require "logster/middleware/reporter"
require "logster/middleware/debug_exceptions"
require "logster/middleware/reporter"

store = Logster.store ||= Logster::RedisStore.new
store.level = Logger::Severity::WARN if Rails.env.production?
store = Logster.store ||= Logster::RedisStore.new
store.level = Logger::Severity::WARN if Rails.env.production?

if Rails.env.development?
require "logster/defer_logger"
logger = Logster::DeferLogger.new(store)
else
logger = Logster::Logger.new(store)
end
if Rails.env.development?
require "logster/defer_logger"
logger = Logster::DeferLogger.new(store)
else
logger = Logster::Logger.new(store)
end

logger.chain(::Rails.logger)
logger.level = ::Rails.logger.level
logger.level = ::Rails.logger.level

Logster.logger = ::Rails.logger = config.logger = logger
end
Logster.logger = config.logger = logger

def self.initialize!(app)
return unless Logster.config.environments.include?(Rails.env.to_sym)
if rails_71?
::Rails.logger.broadcast_to(logger)
else
logger.chain(::Rails.logger)
::Rails.logger = logger
end
end

def initialize!(app)
return unless Logster.config.environments.include?(Rails.env.to_sym)
return unless logster_enabled?

if Logster::Logger === Rails.logger
if Logster.config.enable_js_error_reporting
app.middleware.insert_before ActionDispatch::ShowExceptions, Logster::Middleware::Reporter
end
Expand All @@ -52,6 +59,17 @@ def self.initialize!(app)
Logster.config.application_version = git_version.strip if git_version.present?
end
end

private

def logster_enabled?
return ::Rails.logger == Logster.logger unless rails_71?
::Rails.logger.broadcasts.detect { _1 == Logster.logger }
end

def rails_71?
::Rails.version >= "7.1"
end
end

class Railtie < ::Rails::Railtie
Expand Down

0 comments on commit 98c7efa

Please sign in to comment.