class RailwayIpc::Logger

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)

Attributes

logger[R]

Public Class Methods

new(device=$stdout, level=::Logger::INFO, formatter=nil) click to toggle source
# 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