Module: Adhearsion::Logging

Defined in:
lib/adhearsion/logging.rb

Defined Under Namespace

Modules: HasLogger

Constant Summary collapse

LOG_LEVELS =
%w(TRACE DEBUG INFO WARN ERROR FATAL)

Class Method Summary collapse

Class Method Details

.adhearsion_patternObject



37
38
39
# File 'lib/adhearsion/logging.rb', line 37

def adhearsion_pattern
  '[%d] %-5l %c: %m\n'
end

.default_appendersObject



86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/adhearsion/logging.rb', line 86

def default_appenders
  [::Logging.appenders.stdout(
     'stdout',
     :layout => ::Logging.layouts.pattern(
       :pattern => adhearsion_pattern,
       :date_pattern => "%Y-%m-%d %H:%M:%S.%L",
       :color_scheme => 'bright'
     ),
     :auto_flushing => 2,
     :flush_period => 2
   )]
end

.formatterObject Also known as: layout



139
140
141
# File 'lib/adhearsion/logging.rb', line 139

def formatter
  ::Logging.logger.root.appenders.first.layout
end

.formatter=(formatter) ⇒ Object Also known as: layout=



131
132
133
134
135
# File 'lib/adhearsion/logging.rb', line 131

def formatter=(formatter)
  ::Logging.logger.root.appenders.each do |appender|
    appender.layout = formatter
  end
end

.get_logger(logger_name) ⇒ Object



109
110
111
# File 'lib/adhearsion/logging.rb', line 109

def get_logger(logger_name)
  ::Logging::Logger[logger_name]
end

.initObject



70
71
72
73
74
75
76
# File 'lib/adhearsion/logging.rb', line 70

def init
  ::Logging.init LOG_LEVELS

  LOG_LEVELS.each do |level|
    Adhearsion::Logging.const_defined?(level) or Adhearsion::Logging.const_set(level, ::Logging::LEVELS[::Logging.levelify(level)])
  end
end

.logging_levelObject Also known as: level



105
106
107
# File 'lib/adhearsion/logging.rb', line 105

def logging_level
  ::Logging.logger.root.level
end

.logging_level=(new_logging_level) ⇒ Object Also known as: level=



99
100
101
# File 'lib/adhearsion/logging.rb', line 99

def logging_level=(new_logging_level)
  ::Logging.logger.root.level = new_logging_level
end

.outputtersObject Also known as: appenders



125
126
127
# File 'lib/adhearsion/logging.rb', line 125

def outputters
  ::Logging.logger.root.appenders
end

.outputters=(outputters) ⇒ Object Also known as: appenders=



119
120
121
# File 'lib/adhearsion/logging.rb', line 119

def outputters=(outputters)
  ::Logging.logger.root.appenders = outputters
end

.reopen_logsObject

Close logfiles and reopen them. Useful for log rotation.



64
65
66
67
68
# File 'lib/adhearsion/logging.rb', line 64

def reopen_logs
  logger.info "Closing logfiles."
  ::Logging.reopen
  logger.info "Logfiles reopened."
end

.sanitized_logger_name(name) ⇒ Object



115
116
117
# File 'lib/adhearsion/logging.rb', line 115

def sanitized_logger_name(name)
  name.to_s.gsub(/\W/, '').downcase
end

.silence!Object

Silence Adhearsion’s logging, printing only FATAL messages



42
43
44
# File 'lib/adhearsion/logging.rb', line 42

def silence!
  self.logging_level = :fatal
end

.start(_appenders = nil, level = :info, formatter = nil) ⇒ Object



78
79
80
81
82
83
84
# File 'lib/adhearsion/logging.rb', line 78

def start(_appenders = nil, level = :info, formatter = nil)
  ::Logging.logger.root.appenders = _appenders.nil? ? default_appenders : _appenders

  ::Logging.logger.root.level = level

  self.formatter = formatter if formatter
end

.toggle_trace!Object

Toggle between the configured log level and :trace Useful for debugging a live Adhearsion instance



53
54
55
56
57
58
59
60
61
# File 'lib/adhearsion/logging.rb', line 53

def toggle_trace!
  if level == ::Logging.level_num(Adhearsion.config.platform.logging['level'])
    logger.warn "Turning TRACE logging ON."
    self.level = :trace
  else
    logger.warn "Turning TRACE logging OFF."
    self.level = Adhearsion.config.platform.logging['level']
  end
end

.unsilence!Object

Restore the default configured logging level



47
48
49
# File 'lib/adhearsion/logging.rb', line 47

def unsilence!
  self.logging_level = Adhearsion.config.platform.logging['level']
end