methods=
sublibraries=
requires=
classes=Logger,Logger=Application,Logger=Formatter,Logger=LogDevice,Logger=LogDevice=LogDeviceMutex,Logger=Severity,Logger=Error,Logger=ShiftingError
is_sublibrary=false

ログを記録するためのライブラリです。

=== 使い方

5段階の重要度に分けてログを記録します。


: FATAL
  プログラムをクラッシュさせるような制御不可能なエラー
: ERROR
  エラー
: WARN
  警告
: INFO
   一般的な情報
: DEBUG
  低レベルの情報

全てのメッセージは必ず重要度を持ちます。また Logger オブジェクトも同じように
重要度を持ちます。メッセージの重要度が Logger オブジェクトの重要度よりも
低い場合メッセージは記録されません。

普段は INFO しか記録していないが、デバッグ情報が必要になった時には、
Logger オブジェクトの重要度を DEBUG に下げるなどという使い方をします。

例:

  require 'logger'
  log = Logger.new(STDOUT)
  log.level = Logger::WARN
  
  log.debug("Created logger")
  log.info("Program started")
  log.warn("Nothing to do!")

上の例ではログには WARN のみが記録されます。下が出力例です。

  W, [2005-02-10T20:03:56.489954 #12469]  WARN -- : Nothing to do!

例外オブジェクトも記録するメッセージとして使えます。

例:

  require 'logger'
  log = Logger.new(STDOUT)
  log.level = Logger::ERROR
  
  begin
    File.each_line(path) do |line|
      unless line =~ /^(\w+) = (.*)$/
        log.error("Line in wrong format: #{line}")
      end
    end
  rescue => err
    log.fatal("Caught exception; exiting")
    log.fatal(err)
  end

=== 参考

: Rubyist Magazine
  [[url:http://jp.rubyist.net/magazine/]]
: 標準添付ライブラリ紹介【第 2 回】
  [[url:http://jp.rubyist.net/magazine/?0008-BundledLibraries]]
