我正在登录 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()
返回一个空数组,所以没有什么可删除的。
你能帮我如何让记录器在重新部署之前使用它使用的文件吗?