我们目前使用SLF4J进行日志记录。到目前为止,我们每个工作都会有一个记录器。作业是一个简单的Java类,它有一个方法execute()。现在需要在每次作业运行时创建一个新的日志文件。因此,应创建一个在其名称中包含当前时间的新日志文件,并且需要在export()方法调用期间记录必要的信息。
尽我所能:
void export(){
Logger LOG = LoggerFactory.getLogger("*current time hh:ss*");
LOG.addHandler(new FileHandler("*current time hh:ss*.log"));
LOG.info("something");
}
但由于记录器的数量正在扩大,我不确定是否存在内存泄漏。 还有其他方法吗?
答案 0 :(得分:1)
记录器专为有限数量的记录器而设计,这些记录器在应用程序的生命周期中存在。
如果你想为每个作业创建一个新文件,我只需要创建一个新的FileWriter并写入它并在完成后关闭。
顺便说一句:每次创建一个新文件会使性能降低大约20毫秒,以防万一。