2

私の小さなMavenプロジェクトでlog4jを動作させるのに大きな問題があります。Eclipse でプログラムを実行してもエラーは発生せず、ロギングは完全に機能します。ただし、プロジェクトを jar にパッケージ化すると、次の警告が表示されます。

log4j:WARN No appenders could be found for logger (org.openrdf.sail.memory.MemoryStore).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

log4j.properties ファイルは私の jar にパッケージ化されており、プロジェクトの src/main/resources にあります。この投稿とlog4j Webサイトの構成部分を読みましたが、わかりません。ここに POM をアップロードしました。私の問題に役立つかもしれないヒントに感謝します。

4

4 に答える 4

1

警告メッセージが示すように、 logger のアペンダーが見つかりませんorg.openrdf.sail.memory.MemoryStore。したがって、実際にlog4j.propertiesファイルがあるsrc/main/resourcesことを確認してから、想定どおりにパッケージ化されていることを確認しjarてください。なんらかの理由で、パッケージ化されていないため、実際には見えません。ご存知のように、たわごとが時々発生します...そのようなファイルが にある場合は、ロガーjarを処理するアペンダーを構成したよりも最後に確認してください。org.openrdf.sail.memory.MemoryStore

おそらく、この log4j 構成が機能するかどうかを確認する最も簡単な方法は、デフォルトのコンソール アペンダーを に設定することですlog4j.rootLogger。それを行い、そこで何が起こっているかを書きます。

于 2012-06-25T06:32:20.390 に答える
1

<resource>タグの下にタグを追加し<build></build>ます。これを行うことで、デフォルト ビルドが取得されていない場合に、指定されたパスからリソースを取得すると言います。

<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
</resources>    
于 2012-06-25T05:32:31.893 に答える
0

依存関係を使用して jar を組み立てているようです。これらの jar に log4j.properties も含まれていて、自分の jar をオーバーライドしているときに取得された場合、これは問題を引き起こす可能性があります。そのため、クラスのロガーが見つかりませんorg.openrdf.sail.memory.MemoryStore

jar のログ情報とすべての依存関係を含む 1 つのロガー ファイルのみを使用することです。コピペするだけの話です。依存関係クラスのログ レベルも制御できます。

于 2012-06-25T07:11:55.540 に答える