2010-09-30 18 views
14

persistence.xml से एक उद्धरण:stdout पर स्कीमा लॉग करने के लिए hbm2ddl schemaExport कैसे करें?

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 

लेकिन मैं नहीं दिख रहा स्कीमा (SQL) ही निर्यात:

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

यह है कि मैं क्या लॉग उत्पादन में देखते हैं। इस जानकारी को हाइबरनेट (3.5.6-फ़ाइनल) से कैसे प्राप्त करें?

उत्तर

14

org.hibernate.tool.hbm2ddl श्रेणी DEBUG पर लॉगिंग सक्रिय करें।


अद्यतन: यहाँ है एक सरल logback.xml (मैं प्रवेश बैकएंड के रूप में logback उपयोग कर रहा हूँ):

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

यह अनुकूलन अगर आप log4j का उपयोग कर रहे हैं (आप काम कर रहे विन्यास यहाँ पर क्या मिलेगा इसलिए)।

+0

तुम मुझे संकेत कृपया सकते हैं मैं यह कैसे वास्तव में क्या कर सकते हैं, अगर मैं SLF4J उपयोग कर रहा हूँ और किसी भी प्रवेश विन्यास फाइल की जरूरत नहीं है अभी तक .. – yegor256

4

बस अगर आप स्प्रिंग बूट का उपयोग कर इस पर ठोकर खाएंगे। आप अपने 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

यह काफी मददगार था। एक त्वरित प्रश्न: लॉग स्कीमा को फ़ाइल में निर्यात करने के लिए किस कॉन्फ़िगरेशन का उपयोग करना है? – aksinghdce

0

यहाँ एक सरल 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>