web-dev-qa-db-ja.com

インポートorg.Apache.log4jを解決できません

Eclipse、Selenium、Windows

インポートorg.Apache.log4jを解決できません

私は見つけることができるすべての文書化された手順に従いました、すなわち:

1)次の2つのjarファイルがプロジェクトのビルドパスにあります:log4j-core-2.6.2.jarおよびlog4j-api-2.6.2.jar

2)上記の2つのjarファイルは次のフォルダーにあります:C:\ Eclipse\Apache-log4j-2.6.2-bin

3)上記のフォルダーは私のシステムのCLASSPATH環境変数C:\ Eclipse\Apache-log4j-2.6.2-binにあります

4)プロジェクトのプロジェクトルートに次のlog4j.propertiesファイルが含まれています

    # This sets the global logging level and specifies the appenders
log4j.rootLogger=INFO, theConsoleAppender
    # settings for the console appender
    log4j.appender.theConsoleAppender=org.Apache.log4j.ConsoleAppender
    log4j.appender.theConsoleAppender.layout=org.Apache.log4j.PatternLayout
    log4j.appender.theConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

5)プロジェクトをクリーンアップしました

6)インポートの失敗は次のとおりです。importorg.Apache.log4j.Logger;


断続的にこのエラーメッセージも表示されます

「タイプorg.Apache.log4j.Loggerは解決できません。必要な.classファイルから間接的に参照されています」最初の行:

パッケージcom.example;

このエラーは、プロジェクトを実行すると消えます->クリーン

しかし、log4jのインポートに関するエラーは解決しません。


どんな考えでも大歓迎です。

3

このエラーが発生した場合は、アプリケーションまたはその依存関係の1つがLog4j 1.2APIを使用していることを意味します。

org.Apache.log4jパッケージはLog4j1.2名前空間です。 Log4j 2は、org.Apache.logging.log4j名前空間を使用します。 Log4j 1.2はサポート終了になりました 2015年に、ユーザーはLog4j2にアップグレードすることをお勧めします。

クラスパスにはすでに正しいlog4j-api-2.x.jarとlog4j-core-2.x.jarがありますが、不足しているのはlog4j-1.2-api-2.x.jarだけです。 log4j-1.2-apiは、Log4j 1.2APIへのアプリケーションの呼び出しがLog4j2実装に委任されることを保証するアダプターモジュールです。

古いlog4j-1.2.x.jarがクラスパスから削除されていることを確認してください。

最後に、示した構成はLog4j 1.2用のようであり、Log4j2では機能しません。Log4j2のマニュアルには多くの構成例があります。 (ドキュメントだけがアップグレードの理由です。Log4j2の方がはるかに優れています。)たとえば、 コンソールアペンダー または ファイルアペンダー のセクションを参照してください。

Log4j 2は プロパティ構成フォーマット もサポートします(ただし、構文はlog4j 1.2プロパティフォーマットとは異なります)。

9
Remko Popma