Class: Ohai::Log

Inherits:
Object
  • Object
show all
Defined in:
lib/ohai/log.rb,
lib/ohai/log/formatter.rb

Defined Under Namespace

Classes: Formatter

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject

:nodoc



29
30
31
# File 'lib/ohai/log.rb', line 29

def logger
  @logger
end

Class Method Details

.init(*opts) ⇒ Object

Use Ohai::Logger.init when you want to set up the logger manually. Arguments to this method get passed directly to Logger.new, so check out the documentation for the standard Logger class to understand what to do here.

If this method is called with no arguments, it will log to STDOUT at the :info level.

It also configures the Logger instance it creates to use the custom Ohai::Log::Formatter class.



38
39
40
41
42
43
44
45
46
# File 'lib/ohai/log.rb', line 38

def init(*opts)
  if opts.length == 0
    @logger = Logger.new(STDOUT)
  else
    @logger = Logger.new(*opts)
  end
  @logger.formatter = Ohai::Log::Formatter.new()
  level(Ohai::Config.log_level)
end

.level(loglevel) ⇒ Object

Sets the level for the Logger object by symbol. Valid arguments are:

:debug
:info
:warn
:error
:fatal

Throws an ArgumentError if you feed it a bogus log level.



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/ohai/log.rb', line 57

def level(loglevel)
  init() unless @logger
  case loglevel
  when :debug
    @logger.level = Logger::DEBUG
  when :info
    @logger.level = Logger::INFO
  when :warn
    @logger.level = Logger::WARN
  when :error
    @logger.level = Logger::ERROR
  when :fatal
    @logger.level = Logger::FATAL
  else
    raise ArgumentError, "Log level must be one of :debug, :info, :warn, :error, or :fatal"
  end
end

.method_missing(method_symbol, *args) ⇒ Object

Passes any other method calls on directly to the underlying Logger object created with init. If this method gets hit before a call to Ohai::Logger.init has been made, it will call Ohai::Logger.init() with no arguments.



78
79
80
81
82
83
84
85
# File 'lib/ohai/log.rb', line 78

def method_missing(method_symbol, *args)
  init() unless @logger
  if args.length > 0
    @logger.send(method_symbol, *args)
  else
    @logger.send(method_symbol)
  end
end