向记录器添加多个处理程序

问题描述:

我正在使用java.util.logging。在我的代码中,我添加了多个处理程序到我的记录器。我有1个ConsoleHandler和1个FileHandler。我只希望Info(包含)以上的级别打印到控制台,并且要将所有级别打印到日志文件。当我尝试相应地设置2个文件处理程序的日志记录级别并将处理程序添加到日志记录程序时,日志文件最终只包括Info之上的级别(由ConsoleHandler指定)。这是否意味着我无法为一个记录器指定两个不同的文件处理程序?我该如何解决这个问题并获得所需的功能?非常感谢您的帮助。向记录器添加多个处理程序

+0

一般来说,根据[这篇“Java中的思考”](http://www.linuxtopia.org/online_books/programming_books/thinking_in_java/TIJ317_016.htm),您可以为每个Logger对象注册多个处理程序。我的猜测是你可能错误地定义了日志级别。将您的代码片段添加到问题中,让我们看看您正在做的事情。 – solar

我自己解决了我的问题。在添加处理程序之前,您需要将记录器的级别设置为Level.FINEST,因为记录器默认设置为高于FINEST的级别。因此,将ConsoleHandler的级别设置为FINEST而不更改记录器的级别将不会产生所需的结果。