Module: GrapeRailsLogger

Defined in:
lib/grape_rails_logger.rb,
lib/grape_rails_logger/railtie.rb,
lib/grape_rails_logger/timings.rb,
lib/grape_rails_logger/version.rb,
lib/grape_rails_logger/subscriber.rb,
lib/grape_rails_logger/debug_tracer.rb,
lib/grape_rails_logger/endpoint_patch.rb,
lib/grape_rails_logger/endpoint_wrapper.rb,
lib/grape_rails_logger/status_extractor.rb

Defined Under Namespace

Modules: EndpointPatch, StatusExtractor, Timings Classes: Config, DebugTracer, EndpointWrapper, GrapeRequestLogSubscriber, Railtie

Constant Summary collapse

VERSION =
"1.2.0"

Class Method Summary collapse

Class Method Details

.configConfig

Global configuration instance (for non-Rails usage)

Returns:

  • (Config)

    The configuration object



41
42
43
# File 'lib/grape_rails_logger.rb', line 41

def self.config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ Object

Configure the logger (for non-Rails usage)

Examples:

GrapeRailsLogger.configure do |config|
  config.enabled = false
end

Yields:

  • (config)

    Yields the configuration object



52
53
54
# File 'lib/grape_rails_logger.rb', line 52

def self.configure
  yield config
end

.effective_configConfig

Get the effective configuration (Rails-aware)

Returns:

  • (Config)

    The active configuration object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/grape_rails_logger.rb', line 59

def self.effective_config
  if defined?(Rails) && Rails.application && Rails.application.config.respond_to?(:grape_rails_logger)
    # Use Rails config if available
    rails_config = Rails.application.config.grape_rails_logger
    config_obj = Config.new
    config_obj.enabled = rails_config.enabled if rails_config.respond_to?(:enabled)
    config_obj.subscriber_class = rails_config.subscriber_class if rails_config.respond_to?(:subscriber_class)
    config_obj.logger = rails_config.logger if rails_config.respond_to?(:logger)
    config_obj.tag = rails_config.tag if rails_config.respond_to?(:tag)
    config_obj
  else
    # Fall back to module-level config for non-Rails usage
    config
  end
end