-1

ログ ファイルを .log に書き込むアプリケーションがあります。しかし今、アプリケーションに実装する html jar ファイルを作成します (要求ごとに 1 つのログ)。問題は、同時に 2 つ以上のスレッドが実行されている場合、html ログが混同されることです。

例: aaa.log および bbb.log

aaa.log コンテンツには bbb.log コンテンツが含まれ、その逆も同様です。

独自のコンテンツを持つ別のログ ファイルを作成する方法。

ctx.htmllogger = new HTMLLogger(
        ctx.control.getCodeValue(), 
        ctx.AvailRequest.getTrip().getSegmentProductType()
        .getCodeValue(), ctx.OPT_TYPE);
String htmllogdir = System.getProperty("user.dir");

htmllogdir = htmllogs + "\" + ctx.htmllogger.getCurrentTS( "ddMMyyyy" ) + "\" + ctx.OPT_TYPE.toLowerCase();
ctx.htmllogger.MakeDirectories( htmllogdir );

try { ctx.htmllogger.initLogger(DlgKuoni.class.getCanonicalName(), htmllogdir); } catch (IOException e) { ctx.htmllogger = null; e.printStackTrace(); } ctx.htmllogger.startHTMLLog();

私を助けてくれてありがとう。

4

2 に答える 2

2

log4j (およびおそらく self4j) を確認する必要があります。これらのことを自分で処理する必要はまったくありません。これはすべて、html-formatter などを含む log4j で構成できます。

于 2013-05-31T07:36:36.510 に答える
0

これは、プログラムにバグがあるために発生しています。ほとんどの場合、ログにアクセスするために両方のスレッドで使用されるグローバル/共有変数があります。

一度に 1 つのスレッドだけが参照できるログ用のリソースを用意することをお勧めします。これにより、混乱の可能性が回避されます。

于 2013-05-31T07:36:33.177 に答える