Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > loggerライブラリ
ログを記録するためのライブラリです。
5段階のログレベルに分けてログを記録します。
プログラムをクラッシュさせるような制御不可能なエラー
エラー
警告
一般的な情報
低レベルの情報
全てのメッセージは必ずログレベルを持ちます。また 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"
| Logger | ログを記録するためのクラスです。 |
| Logger::Application | ユーザ定義のアプリケーションにログ機能を簡単に追加することができます。 |
| Logger::Formatter | ロガーのフォーマット文字列を扱うクラス。 |
| Logger::LogDevice | Logger の内部で使用するログの出力先を表すクラスです。 |
| Logger::LogDevice::LogDeviceMutex | ログの出力先ファイルを同期するためのクラスです。 |
| Logger::Severity | logger で使用するログレベルを定義したモジュール。 |
| Logger::Error | このライブラリで使用する例外です。 |
| Logger::ShiftingError | ログファイルの切り替えに失敗した場合に発生する例外です。 |