2

Tomcat6でLiferayをセットアップしています。私は最初、クラスフォルダにlog4j.propertiesファイルを追加し、web-inf / libにlog4j.jarファイルを追加することにより、ポートレット/webappsにLog4jを使用しました。

これで、tomcat / libフォルダーで使用できるクォーツジョブがいくつかあり、これらのジョブでもlog4jロギングを有効にします。

これらのクォーツジョブでは、同じlog4j.propertiesファイルをtomcat/libにコピーしました。

新しい構成では、次のエラーが発生し続けます。

Could not instantiate appender named "JOBS"
A "org.apache.log4j.RollingFileAppender" is not assignable a "org.apache.log4j.Appender" variable.
The class "org.apache.log4j.Appender" was loaded by ...

このエラーを取り除く方法は?

shared/libとportlet/webappsの両方で使用できる単一のlog4j.propertiesファイルを保持できる方法はありますか。

4

2 に答える 2

1

Liferayの既知の問題:http://issues.liferay.com/browse/LPS-9376

私の場合、ServiceBuilderサービスの使用を開始し、Log4JLoggerを...LocalServiceImplクラスの1つに追加すると、問題が発生しました。そこからLog4Jロギングを削除すると、すべてが標準に戻りました。例外はなくなりました。

(私はサービスメソッドに例外をスローさせ、ServiceBuilderの読み取り/生成されたクラスに関連しないコードでそれらをキャッチしていましたが、Log4Jロガー呼び出しをLiferayのLogUtil呼び出しに変更することによっても実行できました)。

于 2011-06-11T14:09:31.703 に答える
1

この投稿によると、問題はlog4jを2回構成したことです。

私の解決策は、このようなロガーインスタンスを作成することです

プライベート静的ロガーロガー=Logger.getLogger(FooBar.class.getName());

log4j.propertieslibまたはclassフォルダーの下にはなく、。という名前のフォルダーの下に配置しますresources

AFAIKこれは、アプリケーションの両方の部分がアクセスできる場所である必要があります。

于 2011-06-02T10:25:00.887 に答える