1

Windows イベント ログに書き込もうとしていますが、しつこい問題があります。

最初に、ここにある手順を使用して NTEventAppender を作成しました。
log4cplus を使用してイベントログにイベントを記録するために必要な NTEventlogAppender.dll を作成する方法

.dll を System32 フォルダーに配置しました。Eclipseでプログラムをビルドして実行すると、このエラーが発生しました

java.lang.UnsatisfiedLinkError: org.apache.log4j.nt.NTEventLogAppender.registerEventSource(Ljava/lang/String;Ljava/lang/String;)I
    at org.apache.log4j.nt.NTEventLogAppender.registerEventSource(Native Method)
    at org.apache.log4j.nt.NTEventLogAppender.<init>(NTEventLogAppender.java:79)
    at org.apache.log4j.nt.NTEventLogAppender.<init>(NTEventLogAppender.java:49)
    at mahle.eolx.ws.Main.<clinit>(Main.java:30)
Exception in thread "main" 

これはJavaアプリケーションであり、上記のリンクされた質問はC++アプリケーションに関するものだったので、別のことをする必要がありますか?

もしそうなら、私は何をする必要がありますか。

編集: log4j ダウンロードに含まれていた NTEventLogAppender.dll を使用する必要があることがわかりましたが、それでも同じエラーが発生します。

4

1 に答える 1

1

これを機能させることはできませんでしたが、NTEventLogAppender(https://github.com/dblock/log4jna)にlog4jnaを使用して、イベントビューアにログインできました。

私はこれらのステップを踏みました

log4jをダウンロードし、プロジェクトに.jarファイルを含めますhttp://logging.apache.org/log4j/1.2/download.html

NTEventLogAppenderの代わりに使用されるlog4jnaをダウンロードし、プロジェクトに必要なjarを追加します(log4jna、jna、プラットフォーム)http://log4jna.codeplex.com/

Win32EventLogAppender.dllをアプリケーションディレクトリのどこかに追加する必要があります。

ロガーに意味のあるメッセージを記録させるには、レジストリを変更する必要があります

 Windows Registry Editor Version 5.00

 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\"YourAppNameHere"]
 "EventMessageFile"="C:\\Program Files\\"Your Application"\\Win32EventLogAppender.dll"
 "CategoryMessageFile"="C:\\Program Files\\"Your Application"\\Win32EventLogAppender.dll"
 "TypesSupported"=dword:00000007
 "CategoryCount"=dword:00000006
于 2012-11-08T15:18:04.913 に答える