可能なオプション:
Logging を利用する必要があります SSIS の機能。メッセージをキャプチャするイベントを構成できます。私は通常ログ OnWarning を好みます および OnError パッケージで発生するすべての警告メッセージとエラー メッセージを追跡します。ログデータを保存するためのさまざまなプロバイダーがあります。ログ情報を照会できるように、SQL Server を使用することを好みます。
SSIS 2012 から表示されるログ オプション:
パッケージへのログインを有効にするには、パッケージ Business Intelligence Development Studio (BIDS) をクリックする必要があります。 SSIS 2005 - 2008 R2 または SQL Server Data Tools (SSDT) でパッケージを開発している場合 SSIS 2012 でパッケージを開発している場合。
SSIS をクリックします メニューをクリックし、Logging... をクリックします。
[SSIS ログの構成] ダイアログが表示されます。
左側で、パッケージまたは個々のタスクをチェックして、イベント データをログに記録できます。
プロバイダーとログ タブで、ログ情報を保存できる適切なプロバイダーを選択できます。以下のスクリーンショットは、イベント情報が接続マネージャー OLEDB_PracticeDB を使用して SQL Server データベースにキャプチャされることを示しています。 .

詳細em> タブで、キャプチャするイベントを選択できます。以下のスクリーンショットは、次のイベントをキャプチャしていることを示しています。
- OnError
- オンインフォメーション
- OnTaskFailed
- OnWarning
@William Todd Salzman
に感謝します OnTaskFailed を推奨するため イベント

サンプル パッケージ イラスト:
SO_15004109.dtsx という名前のパッケージがあるとします。 データ フロー タスクで およびスクリプト タスク .データ フロー タスクは、内部にコンポーネントを持たない単なるダミーです。

スクリプト タスクの Main メソッドには、カスタム情報、警告、およびエラー メッセージを起動する次のコードが含まれているため、ログ データ ソースにどのようにキャプチャされるかを確認できます。コードは SSIS 2012 用に書かれているため、SSIS 2005 用に変更する必要がある場合があります。私は VB.NET を選択しました。 C# の代わりに sql-server-2005
SSIS 2005 は VB.NET のみをサポートします。
SSIS 2005 以降の VB.NET のスクリプト タスク コード。
#Region "Imports"
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
#End Region
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
Public Sub Main()
Dim fireAgain As Boolean = False
Dts.Events.FireInformation(101, "Custom Script Information", "This is a test information message.", String.Empty, 0, fireAgain)
Dts.Events.FireWarning(201, "Custom Script Warning", "This is a test warning message.", String.Empty, 0)
Dts.Events.FireError(201, "Custom Script Error", "This is a test error message.", String.Empty, 0)
Dts.TaskResult = ScriptResults.Success
End Sub
#Region "ScriptResults declaration"
Enum ScriptResults
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
End Enum
#End Region
End Class

スクリプト タスク内でエラーが発生したため、パッケージを実行すると失敗します。 .

エラーをログに記録したデータ ソースに移動すると、SQL Server ログ プロバイダーを選択した場合、SSIS が情報をログに記録するためのテーブルを作成することがわかります。以下の表は、ログ プロバイダーとして選択された SQL Server データベースで SSIS が作成するログ テーブルを示しています。
SSIS Version Log table name Table type
-------------- ---------------- ----------
SSIS 2005 dbo.sysdtslog90 User
SSIS 2008 dbo.sysdtslog100 User
SSIS 2008 R2 dbo.sysssislog System
SSIS 2012 dbo.sysssislog System
以下のクエリをデータベースで実行して、このサンプル パッケージによってキャプチャされたイベントを表示しました。イベントはコンテナーとタスクごとにログに記録されるため、一部のメッセージは 2 回表示されます。テーブルの名前は dbo.sysssislog です パッケージは SSIS 2012 で作成されたためです。
select id, event, source, message from dbo.sysssislog;

ロギングに関する個人的な経験:
ログのエラー メッセージを表示するだけで、何が問題なのかを理解することができました。私の意見では、本番環境でパッケージをデバッグすることはお勧めできません。ただし、ログ イベントをキャプチャすることをお勧めします。
私が SSIS 2005 と 2008 で働いていたとき、ログ テーブルを照会してジョブ実行の日次レポートを生成し、関心のある人に PDF 添付ファイルを送信する SSRS ベースのレポートを作成しました。
SSIS 2012 では、ツールに を使用したレポート機能が組み込まれていることが改善されました。 統合サービス カタログ
SSIDB という名前のデータベースを作成します .