2010-11-19 15 views
1

Java WebStartアプリケーションにはlog4j構成ファイルは含まれていません。ハードコードされたロガーとアペンダーを設定するだけです。Java Web Startを使用したlog4j構成

個々のクライアントがlog4j.propertiesファイルをどこかにドロップし、トラブルシューティングの状況で独自のカスタムログを設定できるようにしたいと思います。 log4j.propertiesファイルをどこかのアプリケーションのjarファイルにバンドルすると、設定が可能になりますが、トラブルシューティングするクライアントにのみ影響するのではなく、各クライアントの設定が同じになります。また、その場で設定を変更することはできません。

log4j initialization procedureにクライアント単位の設定ファイルを使用する方法がありますか?

答えて

3

ここでの基本的な問題は、Java Web Startがマシンへのアクセスを厳しく制限することです。

署名済みのアプリケーションを実行していて、ユーザーがマシンに完全にアクセスできる場合は、これを行う必要があります。そうでない場合は、デフォルトのメカニズムでlog4jを使用することはできません。

Java WebStart APIを使用してファイルシステムから読み取り、それをlog4jにフィードする独自のコンフィグレータを作成することもできますが、いくつかの肘グリスが必要です。

+0

私はマシンにフルアクセスできます。期待しているのは、新しいコードを書いたりアップグレードしたりすることなく、既にデプロイされているマシンでこれを行うことができるように、私自身のコンフィギュレータを書く必要はありません。 – skiphoppy

+0

マシンにフルアクセスしてから、テストされていない場合は、jnlp-fileのlog4j.configurationシステムプロパティを設定します。詳細については、http://logging.apache.org/log4j/1.2/manual.html - セクション「デフォルトの初期化手順」を参照してください。 –

1

log4jの設定をローカルユーザのマシン(署名なしで動作)に保存するか、少なくともWebスタートアプリケーションの起動時に特別な設定を読み込むかどうかのフラグを保存することができます。

FileOpenServiceエンドユーザがロギング機能を即時に再構成するためにローカルlog4j.xmlファイルを開くことができるFileOpenServiceもあります。このようにして、ユーザーは構成を制御し、いつ、どこに適用するかを制御できます。

FileOpenServiceを使用してストリームをlog4j設定ファイルに取得するアプリケーションコードは、DOMConfigurator.configure(InputStream)を使用してlog4jを再設定できます。

関連する問題