Module: Lumberjack::Rails

Defined in:
lib/lumberjack/rails.rb,
lib/lumberjack/rails/log_at_level.rb,
lib/lumberjack/rails/context_middleware.rb,
lib/lumberjack/rails/active_job_extension.rb,
lib/lumberjack/rails/tagged_forked_logger.rb,
lib/lumberjack/rails/rack_logger_extension.rb,
lib/lumberjack/rails/action_cable_extension.rb,
lib/lumberjack/rails/action_mailer_extension.rb,
lib/lumberjack/rails/action_mailbox_extension.rb,
lib/lumberjack/rails/log_subscriber_extension.rb,
lib/lumberjack/rails/tagged_logging_formatter.rb,
lib/lumberjack/rails/broadcast_logger_extension.rb,
lib/lumberjack/rails/action_controller_extension.rb,
lib/lumberjack/rails/request_attributes_middleware.rb,
lib/lumberjack/rails/action_controller_log_subscriber_extension.rb

Overview

Rails integration for Lumberjack logger.

This module provides integration between Lumberjack and Rails applications, enhancing Rails’ logging capabilities while maintaining compatibility with existing Rails logging patterns.

Defined Under Namespace

Modules: ActionCableExtension, ActionControllerExtension, ActionControllerLogSubscriberExtension, ActionMailboxExtension, ActionMailerExtension, ActiveJobExtension, BroadcastLoggerExtension, LogAtLevel, LogSubscriberExtension, RackLoggerExtension, TaggedForkedLogger, TaggedLoggingFormatter Classes: ContextMiddleware, Railtie, RequestAttributesMiddleware

Constant Summary collapse

VERSION =
::File.read(::File.join(__dir__, "..", "..", "VERSION")).strip.freeze

Class Method Summary collapse

Class Method Details

.active_record_entry_formatterLumberjack::EntryFormatter

EntryFormatter that adds a formatter for ActiveRecord models that outputs only the type and id.

Returns:

  • (Lumberjack::EntryFormatter)

    the configured entry formatter



62
63
64
65
66
67
# File 'lib/lumberjack/rails.rb', line 62

def active_record_entry_formatter
  Lumberjack::EntryFormatter.build do |formatter|
    formatter.format_message("ActiveRecord::Base") { |record| "#{record.class.name}.#{record.id || "new_record"}" }
    formatter.format_attributes("ActiveRecord::Base", :id)
  end
end

.logger_context(additional_logger = nil) {|Logger| ... } ⇒ Object

Safely wrap Rails.logger with a Lumberjack context.

Parameters:

  • additional_logger (Logger) (defaults to: nil)

    an optional additional logger to wrap with a context.

Yields:

  • (Logger)

    the block to execute with the wrapped logger context.

Returns:

  • (Object)

    the result of the block execution.



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/lumberjack/rails.rb', line 26

def logger_context(additional_logger = nil, &block)
  rails_logger = ::Rails.logger
  Lumberjack.context do
    if additional_logger && rails_logger != additional_logger
      wrap_block_with_logger_context(rails_logger) do
        wrap_block_with_logger_context(additional_logger, &block)
      end
    else
      wrap_block_with_logger_context(rails_logger, &block)
    end
  end
end

.silence_rack_request_started=(value) ⇒ void

This method returns an undefined value.

Configuration option to silence “Started …” log lines in Rack::Logger.

When set to true, the “Started …” log lines generated by Rack::Logger will be suppressed. This can help reduce log noise in applications where these lines are not needed.

Parameters:

  • value (Boolean)

    whether to silence “Started …” log lines (default: false)



47
48
49
# File 'lib/lumberjack/rails.rb', line 47

def silence_rack_request_started=(value)
  @silence_rack_request_started = !!value
end

.silence_rack_request_started?Boolean

Returns true if the “Started …” log lines in Rack::Logger are silenced.

Returns:

  • (Boolean)

    whether to silence “Started …” log lines (default: false)



54
55
56
# File 'lib/lumberjack/rails.rb', line 54

def silence_rack_request_started?
  @silence_rack_request_started
end