class Hanami::Config::Logger
Hanami
logger config
@api public @since 2.0.0
Attributes
@return [Hanami::SliceName]
@api private @since 2.0.0
@return [Symbol]
@api private @since 2.0.0
Public Class Methods
Returns a new ‘Logger` config.
You should not need to initialize this directly, instead use {Hanami::Config#logger}.
@param env [Symbol] the Hanami
env @param app_name
[Hanami::SliceName]
@api private
# File lib/hanami/config/logger.rb, line 120 def initialize(env:, app_name:) @app_name = app_name @env = env case env when :development, :test config.level = :debug config.stream = File.join("log", "#{env}.log") if env == :test config.logger_constructor = method(:development_logger) else config.level = :info config.formatter = :json config.logger_constructor = method(:production_logger) end end
Public Instance Methods
Build an instance of a development logger
This logger is used in both development and test
@return [Dry::Logger::Dispatcher] @since 2.0.0 @api private
# File lib/hanami/config/logger.rb, line 153 def development_logger(_env, app_name, **options) Dry.Logger(app_name, **options) do |setup| setup .add_backend(log_if: -> entry { !entry.tag?(:rack) }) .add_backend(formatter: :rack, log_if: -> entry { entry.tag?(:rack) }) end end
Returns a new instance of the logger.
@return [logger_class]
@api public @since 2.0.0
# File lib/hanami/config/logger.rb, line 142 def instance logger_constructor.call(env, app_name.name, **logger_constructor_options) end
Build an instance of a production logger
This logger is used in both development and test
@return [Dry::Logger::Dispatcher] @since 2.0.0 @api private
# File lib/hanami/config/logger.rb, line 168 def production_logger(_env, app_name, **options) Dry.Logger(app_name, **options) end
Private Instance Methods
@api private
# File lib/hanami/config/logger.rb, line 175 def logger_constructor_options {stream: stream, level: level, formatter: formatter, filters: filters, template: template, **options} end
@api private
# File lib/hanami/config/logger.rb, line 185 def method_missing(name, *args, &block) if config.respond_to?(name) config.public_send(name, *args, &block) else super end end
@api private
# File lib/hanami/config/logger.rb, line 194 def respond_to_missing?(name, _include_all = false) config.respond_to?(name) || super end