java.util.logger.setLevel()和handler.setLevel()之间有什么区别?

时间:2017-12-01 10:07:48

标签: java logging java.util.logging

我在我的项目中使用java.util.Logger,并且使用简单的ConsoleHandler。默认情况下,日志记录级别为“信息”。我想将关卡更改为' Fine'。但是,我不得不改变Logger和Handler的级别。为什么?这有什么需要?为什么这样设计?为什么我不能单独在Logger / Handler上设置级别并完成它?

1 个答案:

答案 0 :(得分:2)

Logger可拥有多个Handlers。例如。记录器可能会有ConsoleHandlerFileHandler,它会同时转发日志事件。

LoggerHandler可以使用不同的日志级别设置进行过滤。

  • Logger.setLevel()会将您的记录器配置为仅从a登录 一定程度。
  • Handler.setLevel()会将您的处理程序配置为 仅处理来自特定级别的记录器的日志事件。

通过这种方式,您可以使用Logger.setLevel(INFO)设置记录器以记录几乎所有内容。 此外,您可以告诉您FileHandler,它附加到您的“信息”记录器,仅处理至少是警告FileHandler.setLevel(WARNING)的日志。您ConsoleHandler仍会显示信息日志,您在日志文件中只能找到警告和错误。

试一试。这很简单。