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_messages ⇒ Object
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.add_metadata(context, **kw_context)
end
|
.custom_event_types ⇒ Object
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_types ⇒ Object
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.add_metadata(
log_event_type: event_type,
**opts.metadata
)
result = yield
emit_event(event_type, opts.message || default_messages[type])
result
rescue StandardError => e
Rails.logger.add_metadata(**opts.error_metadata) unless opts.error_metadata.empty?
emit_event(event_type, nil, e)
raise
ensure
Rails.logger.clear_metadata!
end
|