java - 使用 log4j2 记录 Spring 事务

标签 java spring transactions log4j2

在一个项目中,我将 log4j 1.2 切换到 Log4j 2 但我无法成功迁移事务日志记录,即使我切换到控制台附加程序,它也不会记录任何内容。

最初在 log4j.properties 中

log4j.logger.org.springframework.orm.hibernate5=DEBUG, TRANSACTIONS
log4j.appender.TRANSACTIONS.Threshold=debug
log4j.appender.TRANSACTIONS=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.TRANSACTIONS.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.TRANSACTIONS.rollingPolicy.FileNamePattern=${server.output.dir}/logs/transactions/transactions_%d{yyyy-MM-dd_HH-mm-ss}.log
log4j.appender.TRANSACTIONS.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.TRANSACTIONS.triggeringPolicy.MaxFileSize=100000000
log4j.appender.TRANSACTIONS.ImmediateFlush=true
log4j.appender.TRANSACTIONS.layout=org.apache.log4j.PatternLayout
log4j.appender.TRANSACTIONS.layout.conversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.TRANSACTIONS.Append=true

现在在 log4j2.xml 中 记录器:

    <Logger name="org.springframework.orm.hibernate5" level="DEBUG">
        <AppenderRef ref="Transactions"/>
    </Logger>

附加器:

<RollingFile name="Transactions" filePattern="${sys:server.output.dir}/logs/transactions/transactions_%d{yyyy-MM-dd}.%i.log"
                     ignoreExceptions="false">
            <PatternLayout>
                <Pattern>%d [%t] %-5p %c - %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy minSize="100000000" />
                <SizeBasedTriggeringPolicy size="100 MB" />
                <TimeBasedTriggeringPolicy />
            </Policies>
            <DirectWriteRolloverStrategy />
        </RollingFile>

我确信附加程序是正确的,因为我也使用基本相同的其他日志记录。

最佳答案

您使用什么依赖项,您是否使用公共(public)日志桥?类似的事情也发生在我身上,添加 log4j-jcl 有所帮助。

您的依赖项应该如下所示

<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-core</artifactId>
   <version>2.8.2</version>
</dependency>
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-jcl</artifactId>
   <version>2.8.2</version>
</dependency>

As stated e.g. here

关于java - 使用 log4j2 记录 Spring 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866426/

相关文章:

java - 如何让Spring Boot项目通过wall包运行,也可以通过jar运行

java.lang.NoSuchMethodError : . ....EventProcessor:找不到方法 <init>()V

c# - 如何保证数据一致性

mysql - 没有锁表的 MySQL

java - 任何使用 hibernate 和 spring MVC 的在线教程/示例

java - struts2-jquery 标签中无法识别动态输入

java - 静态同步方法中的 ConcurrentModificationError

java - 将 Swing/FX 与绑定(bind)混合 - 使用自定义属性在线程之间进行调解?

transactions - Kotlin Exposed 不提交事务

java - Spring Security 和 AspectJ Neo4j 存储库 Autowiring