Class: RailwayIpc::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/railway_ipc/logger.rb

Overview

Custom logger that accepts a ‘device`, `level`, and `formatter`. `formatter` can be any object that responds to `call`; a `Logger::Formatter` is used if the argument is not provided.

Here is an example formatter that uses ‘Oj` to format structured log messages:

require ‘oj’ OjFormatter = proc do |severity, datetime, progname, data|

data.merge!(
  name: progname,
  timestamp: datetime,
  severity: severity
)
Oj.dump(data, { mode: :compat, time_format: :xmlschema })

end

logger = RailwayIpc::Logger.new(STDOUT, Logger::INFO, OjFormatter)

Instance Method Summary collapse

Constructor Details

#initialize(device = $stdout, level = ::Logger::INFO, formatter = nil) ⇒ Logger

Returns a new instance of Logger.



24
25
26
27
28
# File 'lib/railway_ipc/logger.rb', line 24

def initialize(device=$stdout, level=::Logger::INFO, formatter=nil)
  @logger = ::Logger.new(device)
  @logger.level = level
  @logger.formatter = formatter if formatter
end