Module: Dry::System::Plugins::Logging

Defined in:
lib/dry/system/plugins/logging.rb

Class Method Summary collapse

Instance Method Summary collapse

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_pathObject

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_nameObject

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_pathObject

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_levelObject

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_loggerself

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

Returns:

  • (self)


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