以下是我的 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 Transaction 日志。同样来自一个班级: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 Application 中,我已经设置:
<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-structure.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>
但不幸的是,它没有奏效。