Module: Mixlib::Log

### Home Classes Methods

### In Files

- lib/mixlib/log/formatter.rb
- lib/mixlib/log/version.rb
- lib/mixlib/log.rb

### Namespace

- CLASS Mixlib::Log::Formatter

### Methods

- #<<
- #add
- #init
- #level
- #level=
- #log
- #logger
- #logger=
- #loggers
- #method_missing
- #reset!
- #use_log_devices

### Files

- LICENSE
- NOTICE
- README.rdoc

### Class/Module Index

Quicksearch

- Mixlib
- Mixlib::Log
- Mixlib::Log::Formatter

No matching classes.

# Mixlib::Log

### Constants

LEVELS
LEVEL_NAMES
VERSION

### Public Instance Methods

<<(msg) click to toggle source

    # File lib/mixlib/log.rb, line 131
    def <<(msg)
      loggers.each {|l| l << msg }
    end

add(severity, message = nil, progname = nil, &block) click to toggle source

    # File lib/mixlib/log.rb, line 135
    def add(severity, message = nil, progname = nil, &block)
      loggers.each {|l| l.add(severity, message = nil, progname = nil, &block) }
    end

Also aliased as: log
init(*opts) click to toggle source

Use Mixlib::Log.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 :warn level.

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

    # File lib/mixlib/log.rb, line 78
    def init(*opts)
      reset!
      @logger = logger_for(*opts)
      @logger.formatter = Mixlib::Log::Formatter.new() if @logger.respond_to?(:formatter=)
      @logger.level = Logger::WARN
      @logger
    end

level(new_level=nil) click to toggle source

    # File lib/mixlib/log.rb, line 101
    def level(new_level=nil)
      if new_level.nil?
        LEVEL_NAMES[logger.level]
      else
        self.level=(new_level)
      end
    end

level=(new_level) click to toggle source

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.

    # File lib/mixlib/log.rb, line 95
    def level=(new_level)
      level_int = LEVEL_NAMES.key?(new_level) ? new_level : LEVELS[new_level]
      raise ArgumentError, "Log level must be one of :debug, :info, :warn, :error, or :fatal" if level_int.nil?
      loggers.each {|l| l.level = level_int }
    end

log(severity, message = nil, progname = nil, &block) click to toggle source
Alias for: add
logger() click to toggle source

init always returns a configured logger and creates a new one if it doesn't yet exist

    # File lib/mixlib/log.rb, line 46
    def logger
      @logger || init
    end

logger=(new_log_device) click to toggle source

Sets the log device to `new_log_device`. Any additional loggers that had been added to the `loggers` array will be cleared.

    # File lib/mixlib/log.rb, line 52
    def logger=(new_log_device)
      reset!
      @logger=new_log_device
    end

loggers() click to toggle source

An Array of log devices that will be logged to. Defaults to just the default @logger log device, but you can push to this array to add more devices.

    # File lib/mixlib/log.rb, line 38
    def loggers
      @loggers ||= [logger]
    end

method_missing(method_symbol, *args, &block) click to toggle source

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

    # File lib/mixlib/log.rb, line 144
    def method_missing(method_symbol, *args, &block)
      loggers.each {|l| l.send(method_symbol, *args, &block) }
    end

reset!() click to toggle source

    # File lib/mixlib/log.rb, line 32
    def reset!
      @logger, @loggers = nil, nil
    end

use_log_devices(other) click to toggle source

    # File lib/mixlib/log.rb, line 57
    def use_log_devices(other)
      if other.respond_to?(:loggers) && other.respond_to?(:logger)
        @loggers = other.loggers
        @logger = other.logger
      elsif other.kind_of?(Array)
        @loggers = other
        @logger = other.first
      else
        msg = "#use_log_devices takes a Mixlib::Log object or array of log devices. " <<
              "You gave: #{other.inspect}"
        raise ArgumentError, msg
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.