プロジェクト

全般

プロフィール

機能 #424

ログ出力機能

n-ando約15年前に追加. 約15年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
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 を指定すると標準出力へ出力する

履歴

#1 匿名ユーザー が約15年前に更新

  • ステータス新規 から 終了 に変更
  • 進捗率0 から 100 に変更
  • ロガー仲介バッファ (MedLogbuf) を削除。
  • ロガーストリーム (LogStream) を削除。
  • ロガーバッファ (Logbuf) から Logging API を制御するように変更。
  • ログレベルは Logging API の機能を使用するように変更。
  • ログ出力の日付時刻のフォーマットは strftime 同等に変更。 (Formmater クラスを使用 )
  • ログレベルの設定、フォーマットはオブジェクトごとに設定できる。

他の形式にエクスポート: Atom PDF