JSFおよびejb環境にログインしていて、アプリを再デプロイするたびに、.lckファイルが削除されず、新しいログ(およびロック)ファイルが作成されます(logfilename.log.2、logfilename.log.3 ...)
これは、ログを取得し、JSFマネージドBeanにファイルハンドラーを追加する方法です。
static {
// (...)
logger = Logger.getLogger("registrations");
FileHandler fh;
try {
// (...)
fh = new FileHandler(registerLogPath, true);
fh.setFormatter(new Formatter() {
@Override
public String format(LogRecord record) {
return ...
}
});
logger.addHandler(fh);
} catch (IOException | SecurityException ex) {
logger.log(Level.SEVERE, null, ex);
}
}
contextDestroyed
のメソッドでハンドラーを削除しようとしましたが、空の配列が返されるためServletContextListener
遅すぎるようです。削除するものはありません。Logger.getLogger("registrations").getHandlers()
再デプロイする前にロガーに使用したファイルを使用させる方法を教えてください。