logging.vbsは、ロギングフレームワークを提供します。
ロギングフレームワークでは、log4jのように、ロガーと、アペンダーの概念が提供されます。
ロガー
ロガーはフレームワークの基本的なインスタンスです。
ロガーの役割は、アペンダーや子ロガーといったインスタンスを管理し、アプリケーションからのログ出力要求をコントロールすることです。
ロガーは、出力の要求を受け付けるとそのログレベルがロガーに設定されたログ出力レベル以上であればアペンダーにメッセージをディスパッチします。
ログの出力レベルは以下の種類が用意されており、左から右に行くほど高いレベルとして定義されています。
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
ロガーは子ロガーを持つことが可能です。
親ロガーに指示されたログ出力命令は、子ロガーに伝播され、子ロガーはそのアペンダーや設定に従って出力を行います。
ロガーの持っているログ出力レベルは子ロガーにも影響を与え、親の制約が子にも伝播されます。
例えば、親ロガーでINFOレベル以上を出力可能としている場合、子ロガーがどのような設定をしていてもDEBUGレベルの出力はできません。
子ロガーは複数持つことが可能です。
メッセージは全ての子ロガーに順番に引き渡されます。
アペンダー
アペンダーは、指定されたターゲットにログメッセージの出力を行います。
アペンダーが無ければ、ロガーはメッセージを破棄します。
アペンダーには以下の種類が用意されており、それぞれ別々のターゲットにログメッセージを書き込みます。
FileAppender
FileAppenderは、ファイルにメッセージを書き込みます。
対象のファイルは、filenameプロパティに指定します。
TextStreamAppender
TextStreamAppenderは、TextStreamオブジェクトにメッセージを書き込みます。
対象のTextStreamは、textstreamプロパティに指定します。
NTEventLogAppender
NTEventLogAppenderは、WindowsのEventLogにメッセージを書き込みます。
NTEventLogAppenderでは、ログレベルごとに次のようなイベントタイプで書き込まれます。
set logger = log_create_simple( "simple_logger", "app.log", LOG_LEVEL_INFO )
log_info logger, "logging test."
log_close logger
ロガーを構築します。
構築されたばかりのインスタンスは、アペンダーを持っていません。
そのためログ出力関数はメッセージを破棄します。
アペンダーを作成し紐付けを行ってください。
詳細は、log_appender_createを参照してください。
@param name ロガーの名前
@param theshold ログ出力を行う閾値
@return 構築されたロガーオブジェクト
ファイルにロギングするシンプルなロガーを構築します。
このインスタンスは、FileAppenderを持っています。
出力方法をカスタマイズする場合には、このアペンダーのプロパティを変更してください。
@param name ロガーの名前
@param filename 出力先のファイル名
@param theshold ログ出力を行う閾値
@return 構築されたロガーオブジェクト
ロガーの名前を取得します。
@param logger ロガーオブジェクト
@return ロガーの名前
ロガーやアペンダーが開いている各種リソースをクローズします。
この関数は、子ロガーにも適用されます。
@param logger ロガーオブジェクト
ロガーが持っている子ロガーのコレクションを取得します。
@param logger ロガーオブジェクト
@return 子となるロガーオブジェクトのコレクション(子ロガーの名前をキー、子ロガーオブジェクトを値としたScripting.Dictionaryオブジェクト)
ロガーに対して、子ロガーを設定します。
@param logger 親となるロガー
@param name 子となるロガーに付与する名前
@param child 子となるロガー
@return 同名で既に設定されていた子ロガー
ロガーが持っているアペンダーのコレクションを取得します。
@param logger アペンダーを所持しているロガー
@return アペンダーのコレクション(Scripting.Dictionary)
ロガーにアペンダーを設定します。
@param logger アペンダーを所持しているロガー
@return 同名で既に設定されていたアペンダー
アペンダーを構築します。
アペンダーの種類には次のいずれかが指定できます。
アペンダーの名前を取得します。
@param appender アペンダー
@return アペンダーの名前
アペンダーの種類を取得します。
@param appender アペンダー
@return アペンダーの種類
アペンダーのプロパティを設定します。
@param appender 対象のアペンダー
@param name プロパティの名称
@param value 設定値
@return 設定されている値
アペンダーのプロパティに設定されている値を取得します。
@param appender 対象のアペンダー
@param name プロパティの名称
@return 設定されている値
アペンダーが持っているプロパティを取得します。
@param appender 対象のアペンダー
@return プロパティの名前をキー、プロパティ値をとして持ったDictionaryオブジェクト
TRACEレベルのログを出力します。
@param logger ロギングインスタンス
@param message 出力メッセージ
DEBUGレベルのログを出力します。
@param logger ロギングインスタンス
@param message 出力メッセージ
INFOレベルのログを出力します。
@param logger ロギングインスタンス
@param message 出力メッセージ
WARNレベルのログを出力します。
@param logger ロギングインスタンス
@param message 出力メッセージ
ERRORレベルのログを出力します。
@param logger ロギングインスタンス
@param message 出力メッセージ
FATALレベルのログを出力します。
@param logger ロギングインスタンス
@param message 出力メッセージ
指定されたレベルのログを出力します。
@param logger ロギングインスタンス
@param level ログレベル
@param message 出力メッセージ