tomcatのインスタンスを5.5.27から6.0.32にアップグレードしたいのですが、 shared/libディレクトリ(私はtomcat 6でこのディレクトリを再作成しました)。tomcat/shared/libのjarsをwebappの設定を使ってログに記録する
ビルドプロセスの一部として作成するjarファイルがあります。そこにいくつかの共通コードがあり、tomcat 5の下ではshared/libの下にあります。このjarファイルのコードからログ・ステートメントを作成すると、その時点でjarを呼び出すWebアプリケーションのログ・ファイルに書き込まれました。私たちのwebappsのそれぞれは、WEB-INF/libディレクトリにlog4j.properitesとlog4j.jarを持ち、log4j/propertiesではなくlog4j.jarも共有/ libに持っていました。
我々はlog4jのを使用して、次のようにログへの参照を取得している:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class MyClass {
private final static Log CLASS_LOG = LogFactory.getLog(MyClass.class);
}
をしかし、私はTomcatの6に私達の瓶、Webアプリケーション、log4.propertiesとlog4j.jarsの正確な同じ構成を移動すると、私たちの一般的なjarからのログ記録はcatalina.logに行くだけです。
かなり読んだことがあります(http://www.mulesoft.com/tomcat-classpathとtomcatのウェブサイトのクラスローダーとロギングドキュメントを含む)。ほとんどの場合、それがtomcat 5のやり方でどのように機能するかは分かりません。 (私はそれを設定していない、それは私が今までは '今働いている'ことを継承したものだ)。
誰もが共有ライブラリからログをWebアプリケーションのログファイルに取得しようとしているような経験はありますか?私は、各WebアプリケーションのWEB-INF/libディレクトリに共有jarファイルを置くとこれをソートすると思っていますが、同じことをたくさんコピーしてしまうことになります。
個々のWebアプリケーションで共有されたjarファイルをパッケージ化します - 数メガのRAMを節約することは、クラスを読み込む頭痛に値するものではありません。さらに、遅かれ早かれあなたのアプリケーションに依存性の異なるバージョンが必要になることはかなりありそうです。 – Dmitri
@Dmitri +1私はそれを解決策と考えているが、なぜそれが単なるコメントであり、答えとして提供されていないのか分からない。 – Gressie