默认情况下,执行ant任务时,hbm2ddl会向控制台吐出大量输出。我想完全关闭它,如果出现问题,只需查看模式文件即可。有谁知道怎么做?
答案 0 :(得分:4)
Hibernate(至少是当前版本)使用SLF4J进行日志记录。使用SLF4J NOP以静默方式丢弃所有日志记录。或者,您可以为日志记录框架配置低级别详细程度(例如log4j)。
示例log4j.properties:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=debug
log4j.logger.org.hibernate.tool.hbm2ddl=debug
答案 1 :(得分:2)
应该在任务中定义未记录的属性:
<hibernatetool ....>
<property key="scriptToConsole" value="false"/>
...
<hbm2ddl ....../>
</hibernatetool>
对我而言,它有效!