2011-07-07 6 views
0

Swingアプリケーションは、JWSリンクに複数回アクセスすることでユーザーが好きな数のアプリケーションインスタンスを実行できるアプリケーションインスタンスのユーザーオープン数を制限しません。ここで私の質問は、私は多くのアプリケーションインスタンス(jvm)をログにlog4jを使用する場合は、同じログファイルを共有する権利ですか?これに関するロックの問題はありますか、またはこれらのアプリケーションインスタンスは競合することなく同じログファイルにログを書き込むことができますか?Swingアプリケーションでlog4jを使用する

答えて

4

問題は次のとおりです。アプリケーションのすべてのインスタンスを1つのファイルにまとめるのは良い方法ですか?ロギングの意味は、アプリケーションのバグを認識することです。同じファイルを使用している場合、例外をスローしたインスタンスとバグが表示される場所は分かりません。このミスが起きないように、ロギングアーキテクチャを変更することができるかもしれません。 インスタンス数をカウントするか、instanceIDを生成してログファイルに追加してください。

+0

ええ、別のアプリケーションインスタンスに対して異なるログファイルを使用することを考えています。しかし、より多くの努力は、ユーザーがアプリケーションを開いて閉じた後に、ログファイルの数がますます大きくなり、歴史の役に立たないログファイルをクリアする良い方法が必要になるなど、これらのログファイルをメンテナンスする必要があります。 log4jでこれを行うことはできますか? –

+0

はい、ログファイルサイズをlog4j.appender.R.MaxFileSize = 100KBで制限することでこれを解決できます。 log4j.appender.R.MaxBackupIndex = 1 –

+0

ただし、この設定は最初のすべてのインスタンスアプリケーションのログファイルを1つのファイルに書き込むソリューションです。しかし、1つのアプリケーションが1つのログファイル(タイムスタンプやinstanceIDなどを使って互いを識別する)をインスタンス化すると、log4jによってログファイルの数を簡単に制御することはできません。 –

関連する問題