以下是我的 log4j.properties:
log4j.rootLogger=ALL, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %p [%c] - %m%n
log4j.logger.org.springframework=ALL
log4j.logger.app.dev.ems=ALL
log4j.logger.org.springframework.transaction=ALL
我已经提到过log4jConfigLocation
在 web.xml 中:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/resources/log4j.properties</param-value>
</context-param>
并且还定义了它的监听器类:
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
但我无法在控制台中看到 Spring 事务日志。也来自一个班级:app.dev.ems.web.wicket.page.home.HomePage
当我做的时候:
Logger logger = LoggerFactory.getLogger(getClass());
public HomePage() {
logger.debug("<<<<<<<<<<<<<<<<<<<JYM>>>>>>>>>>>>>>>>>>");//if logger.info is used then it is showing.
}
这也不显示该日志。我在 Wicket 应用程序中并且已设置:
<init-param>
<param-name>configuration</param-name>
<param-value>DEVELOPMENT</param-value>
</init-param>
定义 WicketServlet 时。
我无法找到问题所在。任何信息都会对我非常有帮助。
注意:如果您希望我发布 applicationContext.xml 我可以这样做。事务是注释驱动的。
我添加了log4j-1.2.14、slf4j-api-1.6.1、slf4j-log4j12-1.4.2。我正在使用 JBoss AS-7.1.0-Final。
在其他SO线程中,我看到这是JBoss的问题,根据那里给出的说明,我在WEB-INF中添加了jboss-deployment-struct.xml(也尝试使用META-INF):
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
并在 applicationContext.xml 中定义了一个 bean,它将加载 log4j.properties:
<bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>classpath:/app/dev/ems/web/log4j.properties</value>
</list>
</property>
</bean>
但不幸的是它没有起作用。