Log4j2, Spring Boot и Hibernate - PullRequest
       13

Log4j2, Spring Boot и Hibernate

0 голосов
/ 16 апреля 2019

Я пытаюсь настроить Log4J2 с моим приложением Spring Boot. Все работает нормально, но у меня есть некоторые проблемы с SQL-запросчиками.

Я не вижу привязок гибернации, которые я видел до того, как интегрировал log4j2 в мой проект.

Мой pom.xml:

    ...
    <!-- Spring boot dependency -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    ...

My log4j2.xml, основано на документах hiberante

<?xml version="1.0" encoding="UTF-8"?>
    <Configuration monitorInterval="5">   
    <Properties>        
        <Property name="levelTrace">DEBUG</Property>            
        <Property name="slqLevel">TRACE</Property>
    </Properties>    
    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%X{uuid_ws}] %c{1} - %msg%n
                </pattern>
            </PatternLayout>
        </Console>
        <RollingFile name="DAILY_LOG"
                     fileName="${ws-log-path}/${app-name}.log"
                     filePattern="${ws-log-path}/archived/%d{yyyy-MM-dd}.log.gz">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%X{uuid_ws}] [%X] %c{1} - %msg%n
                </pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="30 MB"/>
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="com" level="TRACE" additivity="false">
            <AppenderRef ref="DAILY_LOG" level="${levelTrace}"/>
            <AppenderRef ref="CONSOLE" level="${levelTrace}"/>
        </Logger>
        <Logger name="org.thymeleaf" level="TRACE" additivity="false">
            <AppenderRef ref="DAILY_LOG" level="TRACE"/>
            <AppenderRef ref="CONSOLE" level="TRACE"/>
        </Logger>        
        <!-- Log all SQL DML statements as they are executed -->
        <Logger name="org.hibernate.SQL" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log all JDBC parameters -->
        <Logger name="org.hibernate.type" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log all SQL DDL statements as they are executed -->
        <Logger name="org.hibernate.tool.hbm2ddl" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log the state of all entities (max 20 entities) associated with the session at flush time -->
        <Logger name="org.hibernate.pretty" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log all second-level cache activity -->
        <Logger name="org.hibernate.cache" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log transaction related activity -->
        <Logger name="org.hibernate.transaction" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log all JDBC resource acquisition -->
        <Logger name="org.hibernate.jdbc" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log HQL and SQL ASTs during query parsing -->
        <Logger name="org.hibernate.hql.ast.AST" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log all JAAS authorization requests -->
        <Logger name="org.hibernate.secure" level="${slqLevel}">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="${slqLevel}"/>
        </Logger>
        <!-- Log everything (a lot of information, but very useful for troubleshooting) -->
        <Logger name="org.hibernate.type.descriptor.sql" level="TRACE">
            <AppenderRef ref="DAILY_LOG" level="${slqLevel}"/>
            <AppenderRef ref="CONSOLE" level="TRACE"/>
        </Logger>

        <Root level="trace">
            <AppenderRef ref="DAILY_LOG" level="INFO"/>
            <AppenderRef ref="CONSOLE" level="TRACE"/>
        </Root>
    </Loggers>
</Configuration>

Кроме того, я настраиваю один регистратор для пакета org.hibernate.type и устанавливаю его на уровне TRACE, я не могу видеть привязки SQL.

Может кто-нибудь мне помочь?

...