gpt4 book ai didi

java - Logger.setLevel() 无法正确启用日志记录

转载 作者:行者123 更新时间:2023-11-30 05:07:28 29 4
gpt4 key购买 nike

情况:我有这个 log4j 记录器:

private static final Logger logger = Logger.getLogger(ThisClassName.class);

我正在尝试通过以下方式以编程方式设置它:

Logger.getLogger(ThisClassName.class).setLevel(Level.DEBUG);

仍然,DEBUG 级别的打印被吞没(而 INFO 打印被成功打印)。

即使这个位也没有效果:Logger.getRootLogger().setLevel(Level.DEBUG);

调用 logger.debug("foo") 到达 Category.forcedLog()ConsoleAppender.doAppend(),然后失败(退出):

if(!isAsSevereAsThreshold(event.getLevel()))

知道为什么会发生这种情况吗?

最佳答案

您的附加程序配置的阈值大于调试,因此虽然记录器不会忽略条目,但您的附加程序不会记录它。您还需要通过配置文件或以编程方式将 ConsoleAppender 的阈值配置为 DEBUG:

((ConsoleAppender)someLogger.getAppender("CONSOLE")).setThreshold(Level.DEBUG);

配置文件通常是此类事情的更优雅的解决方案。

编辑:请注意,显然,AppenderSkeleton 的任何子类(包括 ConsoleAppender)shouldn't have a threshold filter set by default 。因此,很可能在您的配置中的某个地方,您实际上手动为该附加程序分配了阈值(>调试),正如@justkt提示的那样。

关于java - Logger.setLevel() 无法正确启用日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594406/

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