【发布时间】:2017-08-15 16:59:22
【问题描述】:
我在使用 EclipseLink、JPA 2.0 和 Spring 4.0 时在我的应用程序中启用与 spring 相关的日志记录存在配置问题,我需要验证实体管理器何时关闭或在执行事务时清理。
我的应用程序启用了 JTA,所以一切都由我的容器(Websphere)控制。这是我的 log4j.xml
<?xml version="1.0"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- CONSOLE normally used in desktop environment -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8" />
<param name="Threshold" value="DEBUG"/>
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%-8X{context}] %-5p %-40.40c{2} - %m%n"/>
</layout>
</appender>
<appender name="FILE_APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="C:\\proj\\was\\logs\\spring.log"/>
<param name="DatePattern" value="'-'yyyy-MM-dd'.txt'"/>
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-4p [%t] %C{2} - %m%n"/>
</layout>
</appender>
<!-- Spring -->
<logger name="org.springframework.transaction" additivity="false">
<level value="DEBUG" />
<appender-ref ref="FILE_APPENDER"/>
</logger>
<logger name="org.springframework.orm.jpa.EntityManagerFactoryUtils" additivity="false">
<level value="DEBUG" />
<appender-ref ref="FILE_APPENDER"/>
</logger>
<logger name="org.springframework.orm.jpa" additivity="false">
<level value="DEBUG" />
<appender-ref ref="FILE_APPENDER"/>
</logger>
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
<appender-ref ref="FILE_APPENDER" />
</root>
</log4j:configuration>
我也尝试了许多解决方案,例如this,但没有帮助。请帮助我哪里出错了?
【问题讨论】:
-
您的问题到底是什么?你没有任何日志?你有丢失的日志吗?当心,spring 使用 slf4j,所以你需要 slf4j-log4j12 jar 才能在 log4j 上记录内容
-
@wargre 我需要将 spring 内部 logger.debug() 日志启用到我的控制台或我已配置 log4j.xml 并具有必要的 jar 的文件,但它仍然不会打印日志。我会尝试你对 slf4j-log4j12 jar 的建议,但我应该下载哪个版本的 jar?
标签: spring-mvc logging orm log4j eclipselink