Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library logger

library logger

要約

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

使い方

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

http://jp.rubyist.net/magazine/

標準添付ライブラリ紹介【第 2 回】

http://jp.rubyist.net/magazine/?0008-BundledLibraries

クラスとモジュール

class Logger

ログを記録するためのクラスです。

class Logger::Application

ユーザ定義のアプリケーションにログ機能を簡単に追加することができます。

class Logger::Formatter

ロガーのフォーマット文字列を扱うクラス。

class Logger::LogDevice

Logger の内部で使用するログの出力先を表すクラスです。

class Logger::LogDevice::LogDeviceMutex

ログの出力先ファイルを同期するためのクラスです。

module Logger::Severity

logger で使用する重要度を定義したモジュール。

例外クラス

class Logger::Error

このライブラリで使用する例外です。

class Logger::ShiftingError

ログファイルの切り替えに失敗した場合に発生する例外です。

Classes

Sublibraries