2010-10-05 39 views
1

我有一些常规代码:如何禁止groovy DataSet操作的异常日志记录?

def dest = destSql.dataSet('destination_table') 
    sourceSql.eachRow('select * from source_table'){row -> 

     try { 
      dest.add(ID: row.id) 
     } catch (SQLException) { //A FK constraint will case some inserts to fail 
      dest.add(ID: 1) 
     } 
    } 

我跑这是一个命令行脚本。一切正常,但无论如何,控制台都会输出SQLException。我希望他们在处理它们时不要出现,因为它们只会污染输出。我怎么能指定(如果可能,以编程方式)?

TIA。

回答

6

你可能只是想关闭groovy sql的日志级别。在尝试添加到数据集之前,请尝试将其添加到您的程序中:

Sql.LOG.level = java.util.logging.Level.SEVERE 
+0

完美,正是我所期待的。谢谢。 – Andrei 2010-10-06 12:32:01

0

是不是添加一些(可能多次)与ID:1去触发fk约束异常?

这可能是你看到的例外,而不是你正在捕捉的那个。

+0

该代码仅仅是一个示例。并且异常被正确捕获,或者程序会崩溃(它不会,它只输出堆栈跟踪到日志,但继续循环遍历所有记录并正常退出)。 – Andrei 2010-10-05 19:17:17

+1

刚刚发现了这个:http://jira.codehaus.org/browse/GROOVY-3808看起来像Groovy 1.7和1.6.6添加了日志记录,所以我会去@ataylors解决方案http://stackoverflow.com/questions/3864970 /如何抑制异常日志记录为groovy数据集操作/ 3868295#3868295 – 2010-10-06 09:21:37

+0

升级到常规1.7.4确实改变了日志的输出(更文明的一个),但它仍然那里。日志级别设置是我希望找到的。感谢jira链接。 – Andrei 2010-10-06 12:37:52