首页 > 解决方案 > 在属性文件中忽略 Java 日志记录级别

问题描述

我有以下用于 java 日志记录的文件,它是 JDK 附带logging.properties的默认文件的略微修改版本:logging.properties

handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level = INFO

java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.level=FINEST
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = CONFIG
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

FileHandler和的级别设置ConsoleHandler被忽略。它们只有在我设置 global 时才有效.level = FINEST。看来,这.level可以作为可以记录的全局限制。但是,从描述中,我希望设置FileHandlerConsoleHandler 覆盖全局设置。

我需要额外的设置来配置吗?

PS:Java版本是1.8。

标签: javalogging

解决方案


Java 日志概述将为您详细介绍日志框架的设置方式。

该行.level = FINEST确定根记录器的级别。这意味着如果您log的代码中有调用,它们将生成日志记录,这些记录将发布到附加的处理程序,也可能发布到父处理程序。

该行确定将发布到输出文件java.util.logging.FileHandler.level=FINEST的最低级别。例如,java.util.logging.ConsoleHandler.level = CONFIG只会将记录 CONFIG 及更高版本发布到控制台。


推荐阅读