Class: MCollective::Logger::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/mcollective/logger/base.rb

Overview

A base class for logging providers.

Logging providers should provide the following:

* start - all you need to do to setup your logging
* set_logging_level - set your logging to :info, :warn, etc
* valid_levels - a hash of maps from :info to your internal level name
* log - what needs to be done to log a specific message

Direct Known Subclasses

Console_logger, File_logger, Syslog_logger

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBase

Returns a new instance of Base.



14
15
16
17
18
19
20
21
# File 'lib/mcollective/logger/base.rb', line 14

def initialize
  @known_levels = [:debug, :info, :warn, :error, :fatal]

  # Sanity check the class that impliments the logging
  @known_levels.each do |lvl|
    raise "Logger class did not specify a map for #{lvl}" unless valid_levels.include?(lvl)
  end
end

Instance Attribute Details

#active_levelObject (readonly)

Returns the value of attribute active_level.



12
13
14
# File 'lib/mcollective/logger/base.rb', line 12

def active_level
  @active_level
end

Instance Method Details

#cycle_levelObject

Figures out the next level and sets it



24
25
26
27
28
29
# File 'lib/mcollective/logger/base.rb', line 24

def cycle_level
  lvl = get_next_level
  set_level(lvl)

  log(lvl, "", "Logging level is now #{lvl.to_s.upcase}")
end

#set_level(level) ⇒ Object

Sets a new level and record it in @active_level



32
33
34
35
# File 'lib/mcollective/logger/base.rb', line 32

def set_level(level)
  set_logging_level(level)
  @active_level = level.to_sym
end