2010-10-05 40 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