Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate SQL语句不会在spring boot应用程序中使用log4j记录在单独的日志文件中_Hibernate_Spring Boot_Log4j2 - Fatal编程技术网

Hibernate SQL语句不会在spring boot应用程序中使用log4j记录在单独的日志文件中

Hibernate SQL语句不会在spring boot应用程序中使用log4j记录在单独的日志文件中,hibernate,spring-boot,log4j2,Hibernate,Spring Boot,Log4j2,我在JBOSS中部署了SpringBoot+Hibernate+Log4j中的web应用程序。如果我们在application.properties中使用“spring.jpa.show-sql=true”,则所有hibernate sql查询都会记录在server.log中。根据Hibernate Log4j指令,我们需要将此属性设置为false,以便sql语句按照Log4j配置记录在单独的日志文件中。如果我们将其设置为false,那么sql语句也不会记录在单独的日志文件中。除hibernat

我在JBOSS中部署了SpringBoot+Hibernate+Log4j中的web应用程序。如果我们在application.properties中使用“spring.jpa.show-sql=true”,则所有hibernate sql查询都会记录在server.log中。根据Hibernate Log4j指令,我们需要将此属性设置为false,以便sql语句按照Log4j配置记录在单独的日志文件中。如果我们将其设置为false,那么sql语句也不会记录在单独的日志文件中。除hibernate日志外,所有其他与应用程序相关的日志都记录在单独的日志文件中。请帮助解决此问题

Below is the entry in application.properties file.
spring.jpa.show-sql = false
spring.jpa.open-in-view=false
spring.datasource.ucm.default-auto-commit=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.id.new_generator_mappings=false  
spring.jackson.serialization.fail-on-empty-beans=false

# SQL statements and parameters
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type.descriptor.sql=trace
Log4j2.xml

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

<Properties>
    <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n
    </Property>
    <Property name="APP_LOG_ROOT">c:/log/VendorPortal</Property>
</Properties>

<Appenders>

    <Console name="console" target="SYSTEM_OUT" follow="false">
        <PatternLayout pattern="${LOG_PATTERN}" />
    </Console>

    <!-- File Appender -->
    <RollingFile name="RollingFile"
        fileName="c:/log/vendorportal.log"
        filePattern="c:/log/vendorportal-%d{MM-dd-yyyy}.log"
        ignoreExceptions="false">
        <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy />
            <SizeBasedTriggeringPolicy size="100 MB" />
        </Policies>
    </RollingFile>

    <Console name="STDOUT" target="SYSTEM_OUT"
        ignoreExceptions="false">
        <PatternLayout pattern="%m%n" />
    </Console>

</Appenders>

<Loggers>

    <Logger name="org.springframework" additivity="false"
        level="error">
        <AppenderRef ref="RollingFile" />
    </Logger>

    <Logger name="org.hibernate" level="info" additivity="false">
        <AppenderRef ref="RollingFile" />
    </Logger>

    <Logger name="org.hibernate.SQL" level="DEBUG"
        additivity="false">
        <AppenderRef ref="RollingFile" />
    </Logger>

    <Logger name="org.hibernate.type.descriptor.sql" level="TRACE"
        additivity="false">
        <AppenderRef ref="RollingFile" />
    </Logger>

    <Root level="error">
        <AppenderRef ref="console" />
        <AppenderRef ref="RollingFile" />
    </Root>

</Loggers>

</Configuration>

%d{yyyy-MM-dd'HH:MM:ss.SSSZ}%p%m%n
c:/log/VendorPortal
%d%p%c{1.}[%t]%m%n
pom.xml

    <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.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>

        </dependency>
    <dependency>
         <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
     <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
</dependency>

org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序日志记录
org.apache.logging.log4j
log4j型芯
org.springframework.boot
spring-boot-starter-log4j2
org.slf4j
slf4j-log4j12

您需要在我们的应用程序中放置Log4j配置文件。然后在其中插入记录器标记:

<Configuration status="WARN" strict="true">
<Properties>
    <Property name="filename">logfile.log</Property>
</Properties>
<Appenders>
    <Appender type="Console" name="Console" target="SYSTEM_OUT">
        <Layout type="PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
        </Layout>
    </Appender>
    <Appender type="File" name="FileAppender" fileName="${filename}">
        <Layout type="PatternLayout">
            <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
        </Layout>
    </Appender>
</Appenders>
<Loggers>
    <Logger name="org.hibernate.SQL" level="debug" additivity="false">
        <AppenderRef ref="Console"/>
    </Logger>
    <Logger name="org.hibernate.type.descriptor.sql" level="trace" additivity="false">
        <AppenderRef ref="Console"/>
    </Logger>..........
......
....

logfile.log
%d{HH:mm:ss.SSS}[%t]-5级别%logger{36}-%msg%n
%d%p%C{1.}[%t]%m%n
..........
......
....

雅阿里

谢谢你的回复。我已经有了带有上述配置的log4j2.xml。仍然无法在创建日志文件时单独显示hibernate日志