Class: Parabot::LoggingSetup

Inherits:
Object
  • Object
show all
Defined in:
lib/parabot/logging_setup.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level = :info, file = "stderr", file_resolver = nil, dir_ensurer = nil) ⇒ LoggingSetup



17
18
19
20
21
22
# File 'lib/parabot/logging_setup.rb', line 17

def initialize(level = :info, file = "stderr", file_resolver = nil, dir_ensurer = nil)
  @level = level
  @file = file
  @file_resolver = file_resolver
  @dir_ensurer = dir_ensurer
end

Class Method Details

.setup_default(level = :info, file = "stderr") ⇒ Object



13
14
15
# File 'lib/parabot/logging_setup.rb', line 13

def self.setup_default(level = :info, file = "stderr")
  new(level, file).setup
end

.setup_with_config(config) ⇒ Object



8
9
10
11
# File 'lib/parabot/logging_setup.rb', line 8

def self.setup_with_config(config)
  new(config.log_level, config.log_file, config.method(:resolve_log_file_path),
      config.method(:ensure_log_directory)).setup
end

Instance Method Details

#setupObject



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/parabot/logging_setup.rb', line 24

def setup
  SemanticLogger.default_level = @level
  SemanticLogger.clear_appenders!

  if %w[stderr stdout].include?(@file)
    setup_stderr_logging
  else
    setup_file_logging
  end
rescue StandardError => e
  # Fall back to stderr logging if file logging fails
  fallback_to_stderr(e)
end