2016-10-24 7 views
0

最近、ログ機能を実装したいと考えています。ログ機能は、ログメカニズムTomcatと非常によく似ています。私はちょうど、Tomcatがどのように異なるWebアプリケーションが異なるロギング設定を持つことができるのかを知りたいと思っていますし、お互いの干渉を心配する必要はありません。前にGoogleによっていくつかの情報が見つかったので、Tomcatはクラスローダーを意識した独自のカスタムClassLoaderLogManagerを使用しています。そして私はこれを知っています。しかし、私自身の実験でClassLoaderLogManager.javaを変更してtomcat-juli.jarを置き換えたとき、私はlogger.info("")と呼んだとき、私のweb-appの導入されたログインターフェイスにはClassLoaderLogManagerとの対話がなかったようです。だから私は実際にはTomcatがこれをどうやって得るのか分からない。1つのJavaアプリケーションでクラスローダーによる異なるログ出力を実装する方法は?

さらに、1つのJavaアプリケーションで異なるクラスローダーによって異なるログ出力を実装したい場合はどうすればよいですか?

答えて

0

Tomcatは、クラスローダーを認識する独自のカスタムClassLoaderLogManagerを使用します。

だから私は本当にただTomcatはこれが行わ取得する方法がわからない

を[中略]。

あなたはすでに、実験で何かが間違っていたことを知っています。 simple test case firstから始めて、あなたの方法を試してください。

さらに、1つのJavaアプリケーションで異なるクラスローダーによって異なるログ出力を実装したい場合はどうすればよいですか?

出力を気にするだけなら、現在のクラスローダに基づいて出力を切り替えるカスタムフォーマッタを作成できます。次に、そのフォーマッタをハンドラにインストールします。

+0

お返事ありがとうございました。この質問を読んで答えられる人はほとんどいませんが、私のような同じ状況の人々にいくつかのショートカットを与えるために、私はここでこの問題に私の最終的な解決策を与えています。私の期待に応えることの本質は、Tomcatのwebapp-classloaderの手順にあります。 webapp-classloaderは、JVMの親の委譲とは異なる、共通のlibのものに優先してリソースとクラスをロードします。 –

関連する問題