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.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/dry/system/plugins/logging.rb', line 10 def self.extended(system) system.setting :logger, reader: true system.setting :log_dir, 'log' 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.
54 55 56 |
# File 'lib/dry/system/plugins/logging.rb', line 54 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.
64 65 66 |
# File 'lib/dry/system/plugins/logging.rb', line 64 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.
59 60 61 |
# File 'lib/dry/system/plugins/logging.rb', line 59 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.
49 50 51 |
# File 'lib/dry/system/plugins/logging.rb', line 49 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
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/dry/system/plugins/logging.rb', line 34 def register_logger if registered?(: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 |