Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/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
Java 如何将hbm2ddl模式导出到日志模式到标准输出?_Java_Hibernate_Orm_Hbm2ddl - Fatal编程技术网

Java 如何将hbm2ddl模式导出到日志模式到标准输出?

Java 如何将hbm2ddl模式导出到日志模式到标准输出?,java,hibernate,orm,hbm2ddl,Java,Hibernate,Orm,Hbm2ddl,引用自persistence.xml: <persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> <properties> <property name="hibernate.archive.autodetection" value="class" /> <property name="hibernate.show_sql" value="tr

引用自
persistence.xml

<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
    <properties>
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="create" />
        ...
    </properties>
</persistence-unit>
spring.jpa:
  hibernate.ddl-auto: create-drop
logging.level:               
  org.hibernate.tool.hbm2ddl: DEBUG
  org.hibernate.SQL: DEBUG   
  org.hibernate.type: TRACE  

但是我没有看到模式(SQL)本身被导出。如何从Hibernate(3.5.6-Final)中获取此信息?

org.Hibernate.tool.hbm2ddl
类别的日志记录激活到
DEBUG


更新:这里是一个简化的
logback.xml
(我使用logback作为日志后端):


%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n

如果您使用的是log4j(您将在此处找到工作配置),请调整它。

以防您在使用Spring Boot时遇到此问题。您可以在
应用程序.yml中配置以下内容:

<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
    <properties>
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="create" />
        ...
    </properties>
</persistence-unit>
spring.jpa:
  hibernate.ddl-auto: create-drop
logging.level:               
  org.hibernate.tool.hbm2ddl: DEBUG
  org.hibernate.SQL: DEBUG   
  org.hibernate.type: TRACE  

下面是一个简化的
log4j.xml
配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
    <appender name="CA" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/>
        </layout>
    </appender>
    <!-- ### log just the SQL ### -->
    <logger name="org.hibernate.SQL">
        <level value="DEBUG" />
    </logger>
    <!-- ### log JDBC bind parameters ### -->
    <logger name="org.hibernate.type">
        <level value="TRACE" />
    </logger>
    <!-- ### log Hibernate model to schema tool ### -->
    <logger name="org.hibernate.tool.hbm2ddl">
        <level value="DEBUG" />
    </logger>
    <root>
        <level value="WARN"/>
        <appender-ref ref="CA"/>
    </root>
</log4j:configuration>


如果我使用的是SLF4J,并且还没有任何日志配置文件,请您提示我如何才能做到这一点。这非常有用。一个简单的问题:为了将记录的模式导出到文件中,要使用什么配置?