如何在Ant中关闭控制台中的大部分hbm2ddl输出?

时间:2010-02-25 16:19:22

标签: java hibernate ant build-process hbm2ddl

默认情况下,执行ant任务时,hbm2ddl会向控制台吐出大量输出。我想完全关闭它,如果出现问题,只需查看模式文件即可。有谁知道怎么做?

2 个答案:

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

对我而言,它有效!