3

Java Eclipse からイベント ビューアーにログを記録する方法を学習しようとしています。API、さまざまなサイト、およびスタック オーバーフローに関する同様の質問を読みました。

しかし、手順に従うと、常に次のようになります。

Exception in thread "main" 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:65)

ソースは何のはずですか?

誰かがそのようなプログラムの完全な例を示すことができれば. できるだけ詳しく教えてください、よろしくお願いします。

現在の私のコードは次のとおりです。

package Output;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.nt.NTEventLogAppender;

public class EventLog {
    public static void main(String[] args) 
    {   

        Logger myLogger = Logger.getLogger(EventLog.class);

        String mySource = "the source";
        PatternLayout myLayout = new PatternLayout("[%c][%l][%p][%thread]: %m%n");

        NTEventLogAppender eventLogAppender= new NTEventLogAppender(mySource,myLayout);

        ConsoleAppender consoleAppender= new ConsoleAppender(myLayout);

        myLogger.addAppender(consoleAppender);
        myLogger.addAppender(eventLogAppender);

        myLogger.setLevel(Level.WARN);

        myLogger.fatal("Come on print");
    }    
}
4

2 に答える 2

2

私もこれを行う方法を調べていました。この回答をテストするのに十分な時間がありませんでしたが、私が読んだことによると、エラーは適切な場所に適切な .dll ファイルがないことが原因です。

「NTEventLogAppender.dll、NTEventLogAppender.amd64.dll、NTEventLogAppender.ia64.dll、または NTEventLogAppender.x86.dll を、Windows システムの PATH にあるディレクトリに適切に配置することを忘れないでください。そうしないと、java. lang.UnsatisfiedLinkError"

于 2012-09-05T01:27:38.867 に答える