首页 > 解决方案 > Spring不记录jog4J XML

问题描述

问题:我正在尝试获取所有 Spring JDBC 事务的日志,但除了我自己的日志之外没有任何日志记录正在写入。

Log4j.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="ALL">
    <Appenders>
        <RollingFile name="RollingFile" fileName="${sys:catalina.home}/logs/BuildingMaterials.log" 
        filePattern="${sys:catalina.home}/logs/BuildingMaterials.log-%d{yyyy-MM-dd_HH_mm}-%i.log">
            <PatternLayout>
                <pattern>%d{MM-dd-yyyy HH:mm:ss.SSS} - %c{1}: %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="1000 KB"/>
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="${sys:catalina.home}/logs" maxDepth="1">
                    <IfFileName glob="BuildingMaterials.log-*"/>
                    <!--<IfAccumulatedFileCount exceeds="4"/>-->
                    <IfLastModified age="14d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </Root>
        <logger name="org.springframework.jdbc.core.JdbcTemplate">
            <level value="trace" />
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </logger>
        <logger name="org.springframework.jdbc.core.StatementCreatorUtils">
            <level value="trace" />
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </logger>
        <logger name="org.springframework.transaction.PlatformTransactionManager" level="trace">
        <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </logger>
        <logger name="org.hibernate" level="trace">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </logger>
   <!-- <logger name="log4j.logger.org.springframework.orm.jpa" level="DEBUG">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="RollingFile"/>
        </logger>
        <logger name="log4j.logger.org.springframework.transaction" level="DEBUG">
            <AppenderRef ref="STDOUT"/>
            <AppenderRef ref="RollingFile"/>
        </logger>-->
    </Loggers>
</Configuration>

我正在使用 gradle 进行依赖管理

compile 'org.apache.logging.log4j:log4j-core:2.11.0'

目前我所尝试的只是在 XML 中,但没有任何日志记录我不确定这是我需要告诉 spring 使用 jog4j 还是 XML 本身的 spring 问题。

该应用程序在 linux 机器上运行。由于我自己的日志记录语句正在被记录,我不认为这是权限问题。

标签: javaspringlog4j

解决方案


推荐阅读