Module: WideLogger

Defined in:
lib/wide_logger/railtie.rb,
lib/wide_logger/version.rb,
lib/wide_logger/wide_logger.rb,
lib/wide_logger/dev_json_formatter.rb,
lib/wide_logger/downgrading_to_debug_logger.rb

Defined Under Namespace

Classes: DevJsonFormatter, DowngradingToDebugLogger, Railtie, WrapOptions

Constant Summary collapse

VERSION =
"1.2.0"
DEFAULT_EVENT_TYPES =
{
  web_request: 'canonical_web_request_summary',
  job: 'canonical_job_summary',
  sqs: 'canonical_sqs_summary'
}.freeze
INTERPOLATION_PATTERN =
/%(?:\{([^}]+)\}|<([^>]+)>([a-zA-Z]))/

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_messagesObject



34
35
36
# File 'lib/wide_logger/wide_logger.rb', line 34

def default_messages
  @default_messages ||= {}
end

Class Method Details

.add_context(context = {}, **kw_context) ⇒ Object



58
59
60
# File 'lib/wide_logger/wide_logger.rb', line 58

def add_context(context = {}, **kw_context)
  Rails.logger.(context, **kw_context)
end

.custom_event_typesObject



24
25
26
# File 'lib/wide_logger/wide_logger.rb', line 24

def custom_event_types
  @custom_event_types ||= {}
end

.custom_event_types=(value) ⇒ Object



19
20
21
22
# File 'lib/wide_logger/wide_logger.rb', line 19

def custom_event_types=(value)
  @custom_event_types = value
  @event_types = nil
end

.event_typesObject



28
29
30
# File 'lib/wide_logger/wide_logger.rb', line 28

def event_types
  @event_types ||= DEFAULT_EVENT_TYPES.merge(custom_event_types).freeze
end

.wrap(type:, opts: WrapOptions.new) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/wide_logger/wide_logger.rb', line 38

def wrap(type:, opts: WrapOptions.new)
  event_type = event_types.fetch(type)

  Rails.logger.(
    log_event_type: event_type,
    **opts.
  )

  result = yield

  emit_event(event_type, opts.message || default_messages[type])
  result
rescue StandardError => e
  Rails.logger.(**opts.) unless opts..empty?
  emit_event(event_type, nil, e)
  raise
ensure
  Rails.logger.clear_metadata!
end