5.2. org.apache.log4j.nt.NTEventLogAppender
このクラスはログ出力を NT のイベント・ログ・システムに追加されます。この Appender は Windows のみで使用可能です。
NTEventLogAppender を使用するには、予め NTEventLogAppender.dll を用意しなければなりません。これは Log4J パッケージの中に用意されていますので、それを適切なディレクトリにコピーしておいください。筆者の環境では C:\WINNT\SYSTEM32 にコピーしました。
NTEventLogAppender オブジェクトは次のコンストラクタで生成します。
1: NTEventLogAppender() 2: NTEventLogAppender(Layout layout) 3: NTEventLogAppender(String source) 4: NTEventLogAppender(String source,Layout layout) 5: NTEventLogAppender(String server,String source) 6: NTEventLogAppender(String server,String source,Layout layout)
コンストラクタで設定できるのは、Layout と source と server です。 Layout と source についてはそれぞれ setLayout( ) 、setSource( ) メソッドで後から指定することも出来ます。 Layout はこれまでの Appender の場合と同じなので説明は省略します。 source はいずれ使用されなくなるオプションなのですが、一つ目と二つ目のコンストラクタを使用した場合は、デフォルトで「Source」という値になっています。他のコンストラクタでも、 source はおまじない的に「 Source 」という値をセットしておくのが良いでしょう。 server はリモートのサーバに対して、 NTEventLog を追加する場合に指定します。この場合、リモートのサーバに NTEventLogAppender.dll を置いておく必要があります。
では、この Appender を用いて出力したログイベントはどのようにして確認するのでしょうか? WindowsNT(2000) では標準でインストールされているイベントビューワを使用します。イベントビューワは、[スタート]−[設定]−[コントロールパネル]−[管理ツール]−[イベント ビューワ]で起動します。 Log4J を使用して渡したログは「アプリケーションログ」で確認することができます。
以下の画面は、イベントビューワでログを確認しているものです。 NTEventLogAppenderSample という名前のクラスを実行して ERROR ログが渡されています。
設定ファイルで NTEventLogAppender を使用する場合は次のように記述します。
1: # sampleLogger 2: log4j.logger.samplelogger=WARN,A8 3: 4: # APPENDER A8 5: log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender 6: log4j.appender.A8.Source=Source
(実習課題2)
全てのレベルのログイベントを故意に発生させ、WARN 以上ログイベントが発生した場合のみ、ログとして出力されるプログラムを作成しなさい。
- Windows の NT イベントログシステムにログを渡すこと。
- リモートの WindowsNT(2000)マシンにログを渡すこと。
- 出力 Layout は 3 章の実習課題 1 に示す PatternLayout を使用すること。