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
26
27
28
# File 'lib/dry/system/plugins/logging.rb', line 10

def self.extended(system)
  system.instance_eval do
    setting :logger, reader: true

    setting :log_dir, default: "log"

    setting :log_levels, default: {
      development: Logger::DEBUG,
      test: Logger::DEBUG,
      production: Logger::ERROR
    }

    setting :logger_class, default: ::Logger, reader: true
  end

  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.



57
58
59
# File 'lib/dry/system/plugins/logging.rb', line 57

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.



67
68
69
# File 'lib/dry/system/plugins/logging.rb', line 67

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.



62
63
64
# File 'lib/dry/system/plugins/logging.rb', line 62

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.



52
53
54
# File 'lib/dry/system/plugins/logging.rb', line 52

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)


37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/dry/system/plugins/logging.rb', line 37

def register_logger
  if registered?(:logger)
    self
  elsif config.logger
    register(:logger, config.logger)
  else
    config.logger = config.logger_class.new(log_file_path)
    config.logger.level = log_level

    register(:logger, config.logger)
    self
  end
end