イベントIDをセットします。タスクのカテゴリをセットします。ソースを登録し、イベントログのハンドルを取得します。イベントログを出力します。-■Cヘッダーファイルの生成javaの「javah」コマンドを使って「NTEventLogAppenderEx.class(ソースではない)」から「Cヘッダーファイル」を作成する。バッチファイル(*.bat)を用意すると良いだろう。org.apache.log4j.nt.NTEventLogAppenderExpause「-classpath」で「log4j-1.2.17.jar」を指定するのを忘れないように。(VS2013)」を利用する。Coreのオープンソース化」と「.NETのLinux、Mac対応」の本気度が伺える。プロジェクト」を作成する。「log4j-1.2.17.zip」アーカイブの「\src\ntdll」フォルダ配下の「nteventlog.cpp」をソースファイルとして登録する。先に作成したCヘッダーファイル「org_apache_log4j_nt_NTEventLogAppenderEx.h」をヘッダーファイルとして登録する。プライオリティを定義したCヘッダーファイル「org_apache_log4j_Priority.h」を作成する。「org_apache_log4j_nt_NTEventLogAppenderEx.h」と「org_apache_log4j_Priority.h」をincludeする。category)」を追加する。「ReportEventW」の引数に「イベントID(DWORDにキャスト)」と「カテゴリ(WORDにキャスト)」を指定する。「..._registerEventSource」関数の「addRegistryInfo((wchar_t*)nsource);」をコメントアウトする。主な手順は、こんなところだが、ネイティブ・アプリの開発に慣れていないと苦戦するだろう。「Cヘッダーファイル」の提供が漏れてるって、どうゆうことやねん。コンパイルもミスっとるし、log4jチームのイベントログ出力に対するやる気のなさが伺えるわ...ともかく、このプロジェクトをビルドすることでnativeライブラリ「NTEventLogAppenderEx.dll」が作成できる。「log4j」においては「NTEventLogAppender.dll」が「メッセージファイル」となっていたが、アプリ毎にメッセージ定義を分けることは常識であり、別途、メッセージファイルを作成する。プロジェクト」を作成する。リンカの設定で「エントリポイントなし」を「はい(/NOENTRY)」に設定する。テキスト(message.mc)」を作成し「タスクのカテゴリとして使用する単語」と「イベントIDに対応するメッセージ」を定義する。message.rc」を設定する。このプロジェクトをビルドすることでメッセージファイル「sample-commons-logging-source.dll」が作成できる。タスクのカテゴリ」となり、「それ以降はイベントID」となる。実際に、カテゴリ数はレジストリの「CategoryCount」値で定義するのだが、飛び番号は使用できないことに注意する必要がある。定義した場合、1~3までしかカテゴリに使用できない。5はイベントIDとなる。「NTEventLogAppenderEx.dll」「sample-commons-logging-source.dll」の配置先を「システム環境変数」の「Path」に定義する。設定ファイルの記述log4jの設定ファイルは、アペンダを「NTEventLogAppender」→「NTEventLogAppenderEx」に変更するだけでよい。「メッセージファイル(sample-commons-logging-source.dll)」のパスをレジストリ値「EventMessageFile」と「CategoryMessageFile」に登録する。「CategoryCount」の値をメッセージファイルに合わせて「5」とする。ログを出力する「EventLogger」クラスの修正。category)」を追加する。「イベントID」と「タスクのカテゴリ」をセットする際は、必ず同期(synchronized)すること。イベントログのアプリケーションにログを出力するためのロガークラスです。アペンダを終了させます。メッセージをイベントログに出力します。IllegalArgumentException("ログレベルが不正です。イベントログ出力の試験用クラス「LogTest」。テスト用のクラスです。イベントログの出力を試験します。"情報のイベントログを出力します。"警告のイベントログを出力します。"エラーのイベントログを出力します。"致命的エラーのイベントログを出力します。"情報のイベントログを出力します。"情報のイベントログを出力します。}}実行結果サンプルのソースコードを実行すると、以下のようにイベントログが出力される。log4jを拡張することで、「イベントID」と「タスクのカテゴリ」を自由に出力することができるようになった。(値は0)」でハードコードしても問題はないだろう。Reserved.プライバシーポリシ。