【问题标题】:Logging spring transactions with log4j2使用 log4j2 记录 spring 事务
【发布时间】:2019-05-20 20:13:00
【问题描述】:

在一个项目中,我将 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>

我确信 appender 是正确的,因为我在其他日志记录中也使用基本相同的方法。

【问题讨论】:

    标签: java spring transactions log4j2


    【解决方案1】:

    您使用什么依赖项,您是否使用公共日志记录桥?类似的事情发生在我身上,添加 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-20
      • 2014-10-30
      • 2019-08-31
      • 2021-11-19
      • 2021-02-28
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多