我正在创建一个程序,它将全天候运行并将持续处理多个任务。这些任务可以并行运行。每个任务都有它独立的日志文件。因此,对于我想要创建自己的记录器的每个任务,这样:
Logger logger = Logger.getLogger("taskID");
在完成任务后,如何才能正确释放记录器,使其不再在内存中?
答案 0 :(得分:2)
没有办法"发布"一个Logger
个对象。但那没关系。如果它是可以访问的,你仍然可以使用它......它不应该被释放"。如果无法访问,GC将回收它。
顺便说一句,如果您真的在谈论log4j
,那么您调用以获取命名记录器的方法是Logger.getLogger(String)
。它被定义为返回现有实例(具有相同名称)(如果存在),因此您不必担心创建同一记录器的大量副本。
答案 1 :(得分:1)