2010-01-13 13 views
2
自定義日誌提供

我目前正在與微軟合作SSIS和SQL Server 2008,我想通過寫日誌文件:寫作SSIS

  • 具體日誌模式:格式化的日期 - 日誌級別:登錄了關聯到錯誤在配置文件中的信息

我徘徊在Web尋找一個解決我的問題上的消息

  • 具體日誌級別
  • 錯誤代碼和我的想法關於爲SSIS編寫我自己的日誌提供程序。

    是否有人知道該怎麼做,或者即使試用它也只是一個巨大的浪費?

    感謝您的幫助

  • 回答

    3

    至於記錄SSIS雲:

    我們使用SSIS中包含有關,是由我們的SSIS專家設計的所有的SSIS包的元數據的數據庫提供的日誌記錄。這使得我們可以輕鬆制定公司標準來記錄所執行的操作,並利用Microsoft爲創建日誌記錄系統所做的工作。但是,日誌數據相對難以閱讀,所以我們的架構師在C#中編寫了一個解析器,將數據拖入一張表格中,並根據需要查看結構。所以是的,我可以告訴你,這是值得的時間去做。我可以輕鬆地讀取任何導入處理的錯誤和步驟。我有一個運行失敗的電子郵件任務,其中包含對該運行表的查詢,以便必須研究失敗的支持人員只需運行電子郵件中的代碼即可查找發生的情況。這大大縮短了研究和修復錯誤的時間。

    要添加更多信息以迴應Nazim的評論: 這是一個相當複雜的數據庫,但它包括諸如導入/導出類型,文件名,要拾取的文件的位置,客戶端與頻率,文件中的列以及它應該保存的數據的類型相關聯(用於檢查文件是否是正確的格式,因爲已知客戶端在沒有警告的情況下更改它們)。我們在包中使用大量這些信息作爲變量。然後,當程序包運行時,我們會在詳細信息表中記錄該運行的詳細信息,其中包括解析數據和實例id(每個程序包的第一個任務中都會爲每次運行填充並與packageid關聯)。然後程序包中的最後一項任務記錄結束時間和成功狀態(或者如果錯誤出現,我們有一個任務結束狀態失敗的實例)。很難描述,因爲我們在數據庫中有20多個表格,而且特定的設計是專有的。如果您想自行設計,只需考慮所有可能用作變量的數據,可用於解決問題的所有數據以及您可能想要運行管理報告的所有數據,以瞭解導入和導出過程。

    +0

    嗨, 感謝您的回答。 你能給我一個關於你的SSIS包的元數據的例子嗎? – Nazim 2010-01-13 17:28:00

    0

    我已經仔細研究了這一點,並認爲它可能更好地堅持使用內置的SSIS日誌功能。

    如果您想專門定製它,您是否查看了可能的日誌記錄到SQL表,然後可能查詢此表的方式是以您需要的格式輸出日誌?

    2

    正如詹姆斯在上面提到的,SSIS有一些很好的內置記錄功能:basic how to on msdn。在我的最後一個客戶端,他們希望按照您的要求記錄特定信息,爲此,我們通過在包事件處理程序的soem中使用腳本任務來創建自定義日誌文件。一些更常用的事件處理程序是OnPreExecute,OnPostExecute和OnError。腳本任務允許您訪問.NET庫,這些庫允許您創建日誌文件並附加您認爲必要的任何信息。在腳本任務中可以使用的包變量中存儲了很多很好的信息,例如執行時間,用戶名,啓動時間等。