Class: Hubbado::Log::RailsLogger

Inherits:
LogHandler show all
Defined in:
lib/hubbado/log/rails_logger.rb

Overview

Writes a log line into a Rails application's own log.

Constant Summary collapse

RAILS_SEVERITIES =

Rails has no logger method below debug, so the gem's trace is written as one. A handler passing it straight through raises NoMethodError on the first trace line it is handed.

{ trace: :debug }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(rails_logger: nil) ⇒ RailsLogger

Returns a new instance of RailsLogger.



11
12
13
14
15
# File 'lib/hubbado/log/rails_logger.rb', line 11

def initialize(rails_logger: nil)
  super()

  @rails_logger = rails_logger
end

Instance Method Details

#log(subject, severity, message, data = nil, stacktrace = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/hubbado/log/rails_logger.rb', line 17

def log(subject, severity, message, data = nil, stacktrace = nil)
  rails_severity = RAILS_SEVERITIES.fetch(severity.to_sym, severity)

  rails_logger.send(rails_severity, "#{subject}: #{message}")

  details(data, stacktrace).each do |detail|
    rails_logger.send(rails_severity, detail)
  end
end