gpt4 book ai didi

java - log4j 调试不记录到任何配置的附加程序

转载 作者:行者123 更新时间:2023-12-01 14:14:11 26 4
gpt4 key购买 nike

Logger.getRootLogger().getAppender("CONSOLE") 在类中返回 null,但它可以登录到控制台。 getAllAppenders() 也在此类中返回 NullEnumeration。

在另一个类(MyClass)中日志记录级别:DEBUG |可加性:true |父级:root | getAllAppenders():NullEnumeration 但 log.debug 没有向控制台打印任何内容。 该类的 log4j 配置是

<logger name="com.xxx.service.impl.MyClass">
<level value="TRACE"/>
</logger>

尝试调试为什么调试消息没有以多种方式打印,但徒劳无功。

如何深入检查该类的 log4j 配置以及可能出现的问题,请帮助我。

最佳答案

首先,您应该将 additivity 参数设置为 false,以确保每个类将其日志写入一个 log4j 文件:

log4j.additivity.${APPENDARNAME}=false

并确保您的应用程序仅加载一种 log4j 技术(对于基本人员,我更喜欢只加载 log4j)

请确保您的任何类路径文件夹下都没有 log4j.xml 或 log4j.properties 文件,但您想要加载的文件夹下没有 log4j.xml 或 log4j.properties 文件。如果可能的话,请强制应用程序使用您的应用程序。对于 Spring :

<bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" >
<property name="staticMethod">
<value>org.springframework.util.Log4jConfigurer.initLogging</value>
</property>
<property name="arguments">
<list>
<value>file:${log4jFile}</value>
</list>
</property>
</bean>

关于java - log4j 调试不记录到任何配置的附加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273322/

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