Java log4j调试未记录到任何已配置的附加器
Java log4j调试未记录到任何已配置的附加器,java,logging,log4j,Java,Logging,Log4j,Logger.getRootLogger().getAppender(“控制台”)在类中返回null,但它可以登录到控制台。getAllAppenders()在此类中还返回NullEnumeration 在另一个类(MyClass)的日志记录级别中:DEBUG | Additivity:true | Parent:root | getAllAppenders():NullEnumeration 但是log.debug不向控制台打印任何内容。 此类的log4j配置为 <logger name
Logger.getRootLogger().getAppender(“控制台”)
在类中返回null,但它可以登录到控制台。getAllAppenders()在此类中还返回NullEnumeration
在另一个类(MyClass)的日志记录级别中:DEBUG | Additivity:true | Parent:root | getAllAppenders():NullEnumeration
但是log.debug不向控制台打印任何内容。
此类的log4j配置为
<logger name="com.xxx.service.impl.MyClass">
<level value="TRACE"/>
</logger>
试图调试为什么调试消息没有以多种方式打印,但徒劳无功
如何深入检查此类的log4j配置以及可能出现的问题,请帮助我。首先,您应该将additivity参数设置为false,以确保每个类都将其日志写入一个log4j文件: log4j.可加性${APPENDARNAME}=false 并确保您的应用程序只加载了一个log4j技术(我只希望基本人员使用log4j) 确保您的任何类路径文件夹下都没有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>
org.springframework.util.log4jconfig.initLogging
文件:${log4jFile}
在web.xml中添加下面的侦听器解决了我的问题。它配置了我所需的log4j.xml,并且log4j记录良好
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.xml</param-value>
</context-param>
<!-- applies log4j configuration -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4jConfigLocation
类路径:log4j.xml
org.springframework.web.util.Log4jConfigListener
有一个参数“-Dlog4j.debug=true”。添加并运行它。它会显示是否有任何log4j属性文件startup@Neron谢谢你的评论。我也尝试过这个选项。根据log4j调试日志记录器正在获取我想要的配置文件(log4j.xml),所有appender都已正确初始化(文件appender带有正确的日志文件),有些类可以将日志打印到所有appender,有些类则无法,如上所述的MyClass。我也为MyClass记录器添加了特定的appender ref。仍然没有更改。