class Hanami::Web::RackLogger::UniversalLogger
@since 2.1.0 @api private
Attributes
logger[R]
@since 2.1.0 @api private
Public Class Methods
call(logger)
click to toggle source
@since 2.1.0 @api private
# File lib/hanami/web/rack_logger.rb, line 65 def call(logger) return logger if compatible_logger?(logger) new(logger) end
Also aliased as: []
new(logger)
click to toggle source
@since 2.1.0 @api private
# File lib/hanami/web/rack_logger.rb, line 92 def initialize(logger) @logger = logger end
Private Class Methods
accepts_entry_payload?(logger)
click to toggle source
# File lib/hanami/web/rack_logger.rb, line 81 def accepts_entry_payload?(logger) logger.method(:info).parameters.any? { |(type, _)| type == :keyrest } end
compatible_logger?(logger)
click to toggle source
# File lib/hanami/web/rack_logger.rb, line 77 def compatible_logger?(logger) logger.respond_to?(:tagged) && accepts_entry_payload?(logger) end
Public Instance Methods
error(message = nil, **payload)
click to toggle source
@see info
@since 2.1.0 @api private
# File lib/hanami/web/rack_logger.rb, line 118 def error(message = nil, **payload) payload[:message] = message if message logger.info(JSON.fast_generate(payload)) end
info(message = nil, **payload)
click to toggle source
Logs the entry as JSON.
This ensures a reasonable (and parseable) representation of our log payload structures for loggers that are configured to wholly replace Hanami’s default logger.
@since 2.1.0 @api private
# File lib/hanami/web/rack_logger.rb, line 109 def info(message = nil, **payload) payload[:message] = message if message logger.info(JSON.fast_generate(payload)) end
tagged(*, &blk)
click to toggle source
@since 2.1.0 @api private
# File lib/hanami/web/rack_logger.rb, line 98 def tagged(*, &blk) blk.call end