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)
确保您的任何classpath文件夹下都没有log4j.xml或log4j.properties文件,但您要加载的文件不在该文件下。如果可能的话,请强制应用程序使用您的。对于春季:
<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>