Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 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

Logger#formatter= を用いてフォーマットを変更することができます。

logger.formatter = proc { |severity, datetime, progname, msg|
  "#{datetime}: #{msg}\n"
}
# => "Thu Sep 22 08:51:08 GMT+9:00 2005: hello world"

参考

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

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

library logger