如何发布Log4J记录器

时间:2014-05-27 11:41:54

标签: java logging log4j

我正在创建一个程序,它将全天候运行并将持续处理多个任务。这些任务可以并行运行。每个任务都有它独立的日志文件。因此,对于我想要创建自己的记录器的每个任务,这样:

Logger logger = Logger.getLogger("taskID");

在完成任务后,如何才能正确释放记录器,使其不再在内存中?

2 个答案:

答案 0 :(得分:2)

没有办法"发布"一个Logger个对象。但那没关系。如果它是可以访问的,你仍然可以使用它......它不应该被释放"。如果无法访问,GC将回收它。

顺便说一句,如果您真的在谈论log4j,那么您调用以获取命名记录器的方法是Logger.getLogger(String)。它被定义为返回现有实例(具有相同名称)(如果存在),因此您不必担心创建同一记录器的大量副本。

答案 1 :(得分:1)

这不是应该Logger实例化的方式。您必须始终制作staticfinal。这样做你不必再担心它了,因为每个类只有一个Logger实例。

查看官方文档和一些手册online。这个book也非常适合入门。

PS:另一方面,我建议您使用SLF4j作为外观。