README.rdoc

Path: README.rdoc
Last Update: Sat May 19 12:26:12 +0000 2012

Logging

    by Tim Pease

DESCRIPTION

Logging is a flexible logging library for use in Ruby programs based on the design of Java‘s log4j library. It features a hierarchical logging system, custom level names, multiple output destinations per log event, custom formatting, and more.

INSTALL

  gem install logging

EXAMPLE

This example configures a logger to output messages in a format similar to the core ruby Logger class. Only log messages that are warnings or higher will be logged.

  require 'logging'

  logger = Logging.logger(STDOUT)
  logger.level = :warn

  logger.debug "this debug message will not be output by the logger"
  logger.warn "this is your last warning"

In this example, a single logger is created that will append to STDOUT and to a file. Only log messages that are informational or higher will be logged.

  require 'logging'

  logger = Logging.logger['example_logger']
  logger.add_appenders(
      Logging.appenders.stdout,
      Logging.appenders.file('example.log')
  )
  logger.level = :info

  logger.debug "this debug message will not be output by the logger"
  logger.info "just some friendly advice"

The Logging library was created to allow each class in a program to have its own configurable logger. The logging level for a particular class can be changed independently of all other loggers in the system. This example shows the recommended way of accomplishing this.

  require 'logging'

  Logging.logger['FirstClass'].level = :warn
  Logging.logger['SecondClass'].level = :debug

  class FirstClass
    def initialize
      @logger = Logging.logger[self]
    end

    def some_method
      @logger.debug "some method was called on #{self.inspect}"
    end
  end

  class SecondClass
    def initialize
      @logger = Logging.logger[self]
    end

    def another_method
      @logger.debug "another method was called on #{self.inspect}"
    end
  end

There are many more examples in the "examples" folder of the logging package. The recommended reading order is the following:

NOTES

Although Logging is intended to supersede Log4r, it is not a one-to-one replacement for the Log4r library. Most notably is the difference in namespaces

[Validate]