操作
機能 #425
完了ログ出力機能
開始日:
2009/02/26
期日:
進捗率:
100%
予定工数:
説明
以前のログ出力機能を見直し新たなログ出力機構を設ける。
大きく分けると
大きく分けると
- ログ出力をシリアライズし、かつ分配するバッファクラス
- ログをフォーマットするフォーマットクラス
に分けられる。
- バッファクラス
- マルチスレッド書き込みに対してシリアライズしてバッファリングする
- 複数の出力先にログを出力できるようにする
- 出力先の例としては、ファイル、標準出力、リモートのログサーバ等
- 出力は容易に拡張できるようにする
- バッファに対してaddStreamで出力先を追加できるようにする
- フォーマットクラス
- ログレベルを指定して出力できるようにする
- 書式は、[時間] [ログレベル] [サフィックス] [メッセージ]
- [時間] [ログレベル] [サフィックス]は自動付加
- [サフィックス] を指定できる関数を用意する
- ログレベルは以下に変更(NORMALがなくなってFATALが追加)
- RTL_SILENT, // 0: ()
- RTL_FATAL, // 1: (FATAL)
- RTL_ERROR, // 2: (FATAL, ERROR)
- RTL_WARN, // 3: (FATAL, ERROR, WARN)
- RTL_INFO, // 4: (FATAL, ERROR, WARN, INFO)
- RTL_DEBUG, // 5: (FATAL, ERROR, WARN, INFO, DEBUG)
- RTL_TRACE, // 6: (FATAL, ERROR, WARN, INFO, DEBUG, TRACE)
- RTL_VERBOSE, // 7: (FATAL, ERROR, WARN, INFO, DEBUG, TRACE, VERBOSE)
- RTL_PARANOID,// 8: (FATAL, ERROR, WARN, INFO, DEBUG, TRACE, VERBOSE, PARA)
- このフォーマットオブジェクトに対するロック・アンロック機能を持たせる
- Manager
- バッファクラスのオブジェクトは、Managerに唯一のインスタンスが保持される
- Manager::getLogStreamBuf()で取得できるようにする
- logger.file_name には複数のファイルもしくは STDOUT/stdout を指定可能にする
- logger.file_name に STDOUT/stdout を指定すると標準出力へ出力する
操作