属性文件中忽略Java日志记录级别

时间:2018-09-27 14:01:05

标签: java logging

我有以下logging.properties文件用于Java日志记录,它是JDK随附的默认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

FileHandlerConsoleHandler的级别设置被忽略。仅当我设置全局.level = FINEST时它们才起作用。似乎.level成为可记录内容的全局限制。但是,根据描述,我希望FileHandlerConsoleHandler中的设置 覆盖全局设置。

我需要其他设置来配置吗?

PS:Java版本为1.8。

1 个答案:

答案 0 :(得分:0)

Java Logging Overview将向您详细介绍如何设置日志记录框架。

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

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