2010-09-30 29 views
14

Một trích dẫn từ persistence.xml:Làm thế nào để làm cho giản đồ hbm2ddlExport để đăng nhập giản đồ để stdout?

<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> 

Đây là những gì tôi thấy trong dữ liệu ghi nhận:

Sep 30, 2010 12:03:43 PM org.hibernate.tool.hbm2ddl.SchemaExport execute 
INFO: Running hbm2ddl schema export 
Sep 30, 2010 12:03:43 PM org.hibernate.tool.hbm2ddl.SchemaExport execute 
INFO: exporting generated schema to database 
Sep 30, 2010 12:03:43 PM org.hibernate.tool.hbm2ddl.SchemaExport execute 
INFO: schema export complete 

Nhưng tôi không thấy schema (SQL) xuất khẩu riêng của mình. Làm thế nào để có được thông tin này ra khỏi Hibernate (3.5.6-Final)?

Trả lời

14

Kích hoạt ghi nhật ký của danh mục org.hibernate.tool.hbm2ddl thành DEBUG.


Cập nhật: Đây là một đơn giản logback.xml (Tôi đang sử dụng logback như khai thác gỗ backend):

<configuration scan="true"> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern> 
    </layout> 
    </appender> 

    <!-- ### log just the SQL ### --> 
    <logger name="org.hibernate.SQL" level="DEBUG"/> 

    <!-- ### log JDBC bind parameters ### --> 
    <logger name="org.hibernate.type" level="TRACE"/> 

    <logger name="org.hibernate.tool.hbm2ddl" level="DEBUG"/> 

    <root level="ERROR"> 
    <appender-ref ref="STDOUT"/> 
    </root> 
</configuration> 

Thích ứng nó nếu bạn đang sử dụng log4j (bạn sẽ tìm thấy cấu hình làm việc ở đây trên VÌ THẾ).

+0

Bạn có thể gợi ý cho tôi chính xác tôi có thể làm điều này không, nếu tôi đang sử dụng SLF4J và chưa có bất kỳ tệp cấu hình ghi nhật ký nào. – yegor256

4

Chỉ trong trường hợp bạn tình cờ gặp phải điều này bằng cách sử dụng Khởi động mùa xuân. Bạn có thể định cấu hình các mục sau trong số application.yml:

spring.jpa: 
    hibernate.ddl-auto: create-drop 
logging.level:    
    org.hibernate.tool.hbm2ddl: DEBUG 
    org.hibernate.SQL: DEBUG 
    org.hibernate.type: TRACE 
+0

Điều này khá hữu ích. Một câu hỏi nhanh: Cấu hình nào để sử dụng để xuất lược đồ đã đăng nhập vào một tệp? – aksinghdce

0

Đây là cấu hình đơn giản 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> 
Các vấn đề liên quan