gpt4 book ai didi

java - 如何为单个 java 类启用 FINE 日志记录

转载 作者:行者123 更新时间:2023-11-30 07:39:13 26 4
gpt4 key购买 nike

我正在使用 java.util.logging.Logger登录我的程序。如何为单个类启用 FINE 日志记录,同时为所有其他类将其设置为 WARNING

我更愿意在我的 main() 方法中以编程方式执行此操作,而不是需要设置额外的属性文件。

最佳答案

我知道 OP 要求以编程方式执行此操作,但这里还有一个示例,说明如何在属性文件中执行此操作。

警告:我认为它值得包含,因为 header 未以编程方式指示,许多开发人员希望通过 logging.properties 来管理它。网上也没有太多关于这方面的内容,它可能会令人困惑,并且与 log4j 略有不同

根日志记录级别由 .level 配置指示。这指示默认情况下哪些事件将被捕获并“分配给”日志记录。根日志记录级别是日志层次结构中“根记录器”使用的级别。参见 this onjava article for more info on the logging hierarchy .

下面,根日志级别设置为 WARNING,因此通常只捕获 WARNING 事件。这由层次结构中的所有子记录器继承,除非您另外配置(稍后):

.level=WARNING

此根日志记录级别仅表示捕获的内容,而不是“分发”的内容。如何分发捕获的事件(消息)取决于与记录器关联的处理程序。例如,ConsoleHandler 会将事件输出到控制台。例如:

java.util.logging.ConsoleHandler.level = WARNING

此 ConsoleHandler.level 指示此处理程序应分发或打印消息的级别。因此,如果使用上述配置接收到 FINE 消息,则此处理程序将不会打印它。不过,它会打印任何具有 WARNING 日志级别或更高级别的消息。

设置为 ALL 将确保 ConsoleHandler 将所有消息打印到控制台(我们还需要配置根级别以确保捕获所有消息):

.level=ALL
java.util.logging.ConsoleHandler.level = ALL

但是,这会产生很多我们也不想要的噪音。因此,为了将 FINE 级事件减少到我们感兴趣的那些类,我们仅更改那些特定记录器的日志记录级别:

com.level = WARNING
com.mypackage.MyClass1.level = FINE
com.mypackage.MyClass2.level = FINE
com.mypackage.mysubpackage.MyClass3.level = FINE

请注意,在上面,我已将“com”记录器的级别明确设置为警告。

关于java - 如何为单个 java 类启用 FINE 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/984765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com