如何停止休眠过度日志记录?

Arp*_*wal 4 java hibernate

我的应用程序使用休眠及其打印的日志记录。我尝试将日志记录设置为错误级别,如下所示。但是,它不会将休眠日志记录设置为错误级别。这里有什么遗漏吗?

pom.xml :

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.2-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.2-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jul</artifactId>
    <version>2.11.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>

<Configuration status="INFO">

    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout
                pattern="[%d{dd MMM yyyy HH:mm:ss}] [%-5p] [%t] [%C{1}:%M:%L] - %m%n" />
        </Console>
    </Appenders>

    <Loggers>
        <Logger name="com.myapp" level="error" additivity="false">
            <AppenderRef ref="CONSOLE" />
        </Logger>
        <Root level="info">
            <appender-ref ref="CONSOLE" />
        </Root>
        <Logger name="org.hibernate" level="error" additivity="false">
            <AppenderRef ref="CONSOLE" />
        </Logger>

    </Loggers>

</Configuration>
Run Code Online (Sandbox Code Playgroud)

使用的休眠和弹簧版本:

<spring-framework.version>4.0.3.RELEASE</spring-framework.version>
        <hibernate.version>3.6.9.Final</hibernate.version> 
Run Code Online (Sandbox Code Playgroud)

记录其打印

19:05:16.733 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - HQL: SELECT g FROM myClass g
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - SQL: sql sample
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
19:05:16.734 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.hibernate.impl.SessionFactoryImpl - Checking named query: Underlyer.findAll
19:05:16.735 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.h.hql.ast.QueryTranslatorImpl - parse() - HQL: SELECT u FROM entity.class1 u
19:05:16.737 [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.hql.ast.AST - --- HQL AST ---
 \-[QUERY] Node: 'query'
    \-[SELECT_FROM] Node: 'SELECT_FROM'
       +-[FROM] Node: 'FROM'
       |  \-[RANGE] Node: 'RANGE'
       |     +-[DOT] Node: '.'
       |     |  +-[DOT] Node: '.'
       |     |  |  +-[DOT] Node: '.'
       |     |  |  |  +-[DOT] Node: '.'
       |     |  |  |  |  +-[DOT] Node: '.'
       |     |  |  |  |  |  +-[DOT] Node: '.'
Run Code Online (Sandbox Code Playgroud)

Pie*_*ter 5

线程名称似乎表明您正在 weblogic 容器上运行。您确定正在使用日志记录配置吗?(例如,请参阅log4j2-not-working-in-weblogic-12-2-1)。

除此之外,我也没有看到使用 additivity="false" 然后重复完全相同的 appender 的意义。你为什么不喜欢这样简单的东西?

<Loggers>
    <Root level="info">
        <appender-ref ref="CONSOLE" />
    </Root>
    <Logger name="com.myapp" level="error"/>
    <Logger name="org.hibernate" level="error"/>
</Loggers>
Run Code Online (Sandbox Code Playgroud)