Module: Dry::System::Plugins::Logging
- Defined in:
- lib/dry/system/plugins/logging.rb
Class Method Summary collapse
- .extended(system) ⇒ Object private
Instance Method Summary collapse
- #log_dir_path ⇒ Object private
- #log_file_name ⇒ Object private
- #log_file_path ⇒ Object private
- #log_level ⇒ Object private
-
#register_logger ⇒ self
private
Set a logger.
Class Method Details
.extended(system) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/dry/system/plugins/logging.rb', line 8 def self.extended(system) system.setting :logger, reader: true system.setting :log_dir, 'log'.freeze system.setting :log_levels, { development: Logger::DEBUG, test: Logger::DEBUG, production: Logger::ERROR } system.setting :logger_class, ::Logger, reader: true system.after(:configure, &:register_logger) super end |
Instance Method Details
#log_dir_path ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
53 54 55 |
# File 'lib/dry/system/plugins/logging.rb', line 53 def log_dir_path root.join(config.log_dir).realpath end |
#log_file_name ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
63 64 65 |
# File 'lib/dry/system/plugins/logging.rb', line 63 def log_file_name "#{config.env}.log" end |
#log_file_path ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
58 59 60 |
# File 'lib/dry/system/plugins/logging.rb', line 58 def log_file_path log_dir_path.join(log_file_name) end |
#log_level ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
48 49 50 |
# File 'lib/dry/system/plugins/logging.rb', line 48 def log_level config.log_levels.fetch(config.env, Logger::ERROR) end |
#register_logger ⇒ self
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Set a logger
This is invoked automatically when a container is being configured
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/dry/system/plugins/logging.rb', line 33 def register_logger if key?(:logger) self elsif config.logger register(:logger, config.logger) else config.logger = logger = config.logger_class.new(log_file_path) config.logger.level = log_level register(:logger, config.logger) self end end |