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_pattern_optionsObject



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

def adhearsion_pattern_options
  {
    :pattern      => '[%d] %-5l %c: %m\n',
    :date_pattern => '%Y-%m-%d %H:%M:%S.%L'
  }
end

.default_appendersObject



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/adhearsion/logging.rb', line 82

def default_appenders
  [::Logging.appenders.stdout(
     'stdout',
     :layout => ::Logging.layouts.pattern(
       adhearsion_pattern_options.merge(
         :color_scheme => 'bright'
       )
     ),
     :auto_flushing => 2,
     :flush_period => 2
   )]
end

.formatterObject Also known as: layout



123
124
125
# File 'lib/adhearsion/logging.rb', line 123

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

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



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

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

.get_logger(logger_name) ⇒ Object



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

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

.initObject



66
67
68
69
70
71
72
73
74
# File 'lib/adhearsion/logging.rb', line 66

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

  ::Logging.logger.root.appenders = default_appenders
end

.logging_levelObject Also known as: level



101
102
103
# File 'lib/adhearsion/logging.rb', line 101

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

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



95
96
97
# File 'lib/adhearsion/logging.rb', line 95

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

.sanitized_logger_name(name) ⇒ Object



111
112
113
# File 'lib/adhearsion/logging.rb', line 111

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

.silence!Object

Silence Adhearsion’s logging, printing only FATAL messages



45
46
47
# File 'lib/adhearsion/logging.rb', line 45

def silence!
  self.logging_level = :fatal
end

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



76
77
78
79
80
# File 'lib/adhearsion/logging.rb', line 76

def start(level = :info, formatter = nil)
  ::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



56
57
58
59
60
61
62
63
64
# File 'lib/adhearsion/logging.rb', line 56

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

.unsilence!Object

Restore the default configured logging level



50
51
52
# File 'lib/adhearsion/logging.rb', line 50

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