2012-12-28 65 views
2

由於組件嵌套在其他組件中(如容器和一個組件例如數據流)由於嵌套容器造成的重複日誌條目

enter image description here

我發現this,其中MS說,它不會做任何事情,但它從2007年起 我真的不想要做的解決辦法的建議,似乎很多工作。

+0

看到這個問題的答案是與你相似:http://stackoverflow.com/q/2560452/236348 –

+0

@WilliamToddSalzman I * *認爲迭戈的目標是使本機/開箱記錄的行爲非常就像您的自定義事件處理程序檢查(+1順便說一句),而不必經過並設置Propagate屬性的一切。 – billinkc

+3

投票重新開放。重複問題適用於使用SSIS事件來執行操作以及如何將其限制爲僅限一種用法。 *這個*問題是關於如何使用本地日誌記錄功能引發相同的行爲。如果OP在各種事件處理程序中使用「執行SQL任務」來執行日誌記錄,則它將是重複的。情況並非如此,我認爲這個問題是被錯誤地關閉的。 – billinkc

回答

3

進行日誌記錄,如果你選擇登錄到SQL Server,SSIS將創建一個存儲過程 (SQL 2005)

PROC名稱:dbo.sp_dts_addlogentry

表名:dbo.sysdtslog90(user表)

(SQL 2008)

PROC名稱:dbo.sp_ssis_addlogentry

表名:dbo.sysssislog(SY幹表)

你可以自由地修改這個過濾掉日誌條目(SQL將重新創建它,如果缺少它,但不會覆蓋同名的自書面版本)。

系統生成的版本只是插入到由SSIS發送給proc的參數中。

你可以添加一些邏輯來追蹤執行id後面的鏈來查找父對象並且禁止記錄已經記錄的條目(你將要在你的代碼中處理OnError事件名稱)我通常會傳遞OnPreExecute, OnPostExecute,OnError和OnTaskFailed事件到我的日誌記錄過程中。默認情況下,proc也獲取PackageStart和PackageEnd事件。

這就是說,我讓所有這些日誌完全在sql中的表中,然後使用匯總和詳細報告來檢查日誌記錄並查看錯誤。我的報告過濾器僅顯示每次發生的一個錯誤,而不是過濾輸入到日誌文件中的錯誤。我還將所有的SSIS包都記錄到一個數據庫中,用於每個SSIS包中的配置和日誌記錄。

+0

感謝程序的信息。不知道。不要以爲我可以對proc做任何事情,因爲它每行調用一次,所以我實際上不能檢查重複。唯一的解決辦法是按組件的ID進行過濾,但我不喜歡這樣。會變得非常混亂。我想我會像你一樣做,並在報告中處理它。謝謝。 – Diego