0
私はこれは私が VelocityとLog4j2を統合するには?
private static VelocityEngine velocityEngine = new VelocityEngine();
static {
velocityEngine.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,
"org.apache.velocity.runtime.log.Log4JLogChute");
velocityEngine.setProperty("runtime.log.logsystem.log4j.LOGGER",
VelocityUtil.class.getName());
velocityEngine.init();
}
のLog4jと速度1.7
を統合していた。しかしLOG4j2にアプリケーションをアップグレードした後、私は次の例外を取得していますどのようにあるのLog4jを使用したWebアプリケーションと速度V1.7を持っています...
java.io.FileNotFoundException: velocity.log (Permission denied)
これは私がLOG4Jを使用していたとき、私は、上記の静的なブロックにVelocityEngineのプロパティを設定して作られた同じ例外です。
明らかに、Log4j2と互換性のあるLog4JLogChuteの同等物はありません。
誰でもLog4j2とVelocityの互換性を達成する方法を知っていますか?
プロジェクトのどこにでもlog4j 1.xがありません。また、アプリケーションにlog4j-1.2-api 2.7を追加しました。リンケージエラーが発生しました。 – DolphinJava
指定していない可能性がありますが、Velocityが使用しています。その依存関係を満たす必要があります。 Mavenを使用している場合は、 "mvn dependency:tree"を実行して、log4j 1.x jarが存在するかどうかを確認することができます。そうであれば、それを含ませる依存関係から除外する必要があります。存在しない場合は、log4j-1.2-api jarを追加してください。 – rgoers
ローダー制約違反:メソッド "org.apache.log4j.RollingFileAppender。(Lorg/apache/log4j/Layout; Ljava/lang/String; Z)V"をクラスローダー(orgのインスタンスorg/apache/velocity/runtime/log/Log4JLogChute、メソッドの定義クラスorgのクラスローダー(org/apache/catalina/loader/StandardClassLoaderのインスタンス)の現在のクラス(/ apache/catalina/loader/WebappClassLoader)/apache/log4j/RollingFileAppenderは、署名に使用されるorg/apache/log4j/Layoutタイプの異なるClassオブジェクトを持っています –
DolphinJava