class MicroserviceLogger
A machine-readable first, human-readable second logging library
Log all the things in JSON
Constants
- DEFAULT_EVENT_TYPES
Public Class Methods
new(service_name:, clock:, output:, scoped_properties: {}, events: DEFAULT_EVENT_TYPES)
click to toggle source
# File lib/microservice_logging.rb, line 8 def initialize(service_name:, clock:, output:, scoped_properties: {}, events: DEFAULT_EVENT_TYPES) @service_name = service_name @clock = clock @output = output @scoped_properties = scoped_properties @event_loggers = {} @events = events @events.each do |method_name| event_type = method_name.to_s @event_loggers[method_name] = JsonEventLogger.new(:service_name => @service_name, :clock => @clock, :output => @output, :scoped_properties => @scoped_properties, :event_type => event_type) end end
Public Instance Methods
method_missing(event)
click to toggle source
Calls superclass method
# File lib/microservice_logging.rb, line 30 def method_missing(event) super unless @events.include? event @event_loggers[event] end
with(scoped_properties)
click to toggle source
# File lib/microservice_logging.rb, line 42 def with(scoped_properties) MicroserviceLogger.new(:service_name => @service_name, :clock => @clock, :output => @output, :scoped_properties => scoped_properties) end