Class: RailwayIpc::Logger
- Inherits:
-
Object
- Object
- RailwayIpc::Logger
- 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
-
#initialize(device = $stdout, level = ::Logger::INFO, formatter = nil) ⇒ Logger
constructor
A new instance of Logger.
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 |