- PR -

loggerのローテーションについて

1
投稿者投稿内容
OZ
常連さん
会議室デビュー日: 2006/02/27
投稿数: 45
投稿日時: 2006-07-21 21:39
いつもお世話になっております。

EJBを作成し、サーバー上にログを出力しているのですが、2つの点で
悩まされています。

処理は以下のように行っています。
コード:
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;


private FileHandler fh = null;
private Logger logger = Logger.getLogger(this.getClass().getName());

public void ejbCreate() throws CreateException {
	if(fh==null){
		fh = new FileHandler("traceLog_%g.log", 50000, 3, true);
		fh.setEncoding("SJIS");
		fh.setFormatter(new SimpleFormatter());
		logger.addHandler(fh);
	}
}



1.指定しているローテーション番号とは異なるローテーション番号が付加される場合がある。
 traceLog_0.log
 traceLog_0.log.1
 traceLog_0.log.2
 本来は、
 traceLog_0.log
 traceLog_1.log
 traceLog_2.log
 となって欲しい。

2.全てのログを削除しEJBをデプロイし直しても、ローテーション番号が削除前の続きで出力されてしまう。
 traceLog_0.log
 traceLog_0.log.1
 traceLog_0.log.2
 を一旦削除し、EJBをデプロイし直して実行すると
 traceLog_0.log.2
 traceLog_0.log.3
 traceLog_0.log.4
 と出力される。

実行環境は、
クライアント:Windows2000Pro(SP4)、J2SE 1.4.2.07
サーバ:HP-UX11.23、J2EE 1.3
となります。

宜しくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)