2

クラスパスにlog4j1.2.8があるWeblogic8.1にエンタープライズアプリケーションをデプロイしています。SLF4J1.6.1で次のエラーが発生します。

SLF4Jバージョン1.4.0以降にはlog4j1.2.12以降が必要です

http://www.slf4j.org/codes.html#log4j_version

上記のリンクでは、Log4jLoggerAdapterの使用を推奨しています。

私は変わった

Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");

Log4jLoggerAdapter logger = (Log4jLoggerAdapter) LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");

ただし、まだエラーが発生しています。これを正しく実装する方法について何かアドバイスはありますか?

ありがとう。

[編集]slf4j-api-1.6.1.jarとslf4j-log4j12-1.6.1.jarは私の開発クラスパスにあり、EARファイルのAPP-INF/libにパッケージ化されています。log4j1.2.8はアプリケーションサーバーのクラスパスにあります。

4

2 に答える 2

1

問題は、同じslf4j-api JARと実装JAR(slf4j-log4j)を使用する必要があることです。

CLASSPATHの両方のjarファイルが同じバージョンであることを確認してください。また、常に2つだけ入れてください。

  • APIJAR
  • 実装JAR(log4jアダプター、juliロガー、単純なロガーなど)

編集:エラーメッセージをもう一度見てください:おそらく、log4jライブラリをアップグレードするか、slf4jライブラリをダウングレードする必要があります。それらは互換性のないバージョンです。

于 2011-01-17T09:53:21.647 に答える
0

「SLF4Jバージョン1.4.0以降にはlog4j1.2.12以降が必要です」は単なる警告です。SLF4J 1.6.1は、log4j1.2.8で問題なく動作するはずです。つまり、何も変更する必要はありません。特に、Log4jLoggerAdapterへのキャストは不要であり、コードを醜くする以外には何の役にも立ちません。

于 2011-01-18T14:53:59.380 に答える