スクリプト タスクでのログ記録
Integration Services パッケージのログ記録を使用すると、実行の進行状況、結果、および問題点などに関する詳細な情報を、あらかじめ定義されたイベントまたはユーザー定義のメッセージとして記録し、後で分析することができます。スクリプト タスクでユーザー定義のデータをログ記録するには、Dts オブジェクトの Log メソッドを使用できます。ログ記録が有効で、[SSIS ログの構成] ダイアログ ボックスの [詳細] タブでログ記録の対象として [ScriptTaskLogEntry] イベントが選択されている場合、Log メソッドを 1 回呼び出すと、そのタスク用に設定されたすべてのログ プロバイダーに対し、イベント情報が保存されます。
注 |
---|
ログ記録はスクリプト タスクから直接実行できますが、ログ記録ではなくイベントを実装することを検討する必要があります。イベントを使用すると、イベント メッセージのログ記録を有効にできるだけでなく、既定またはユーザー定義のイベント ハンドラーによってイベントに応答することもできます。 |
ログ記録の詳細については、「パッケージ実行のログ記録」を参照してください。
ログ記録の例
次の例は、処理された行数を表す値をログに記録する、スクリプト タスクのログ記録を示します。
Public Sub Main()
Dim rowsProcessed As Integer = 100
Dim emptyBytes(0) As Byte
Try
Dts.Log("Rows processed: " & rowsProcessed.ToString, _
0, _
emptyBytes)
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
'An error occurred.
Dts.Events.FireError(0, "Script Task Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
public class ScriptMain
{
public void Main()
{
//
int rowsProcessed = 100;
byte[] emptyBytes = new byte[0];
try
{
Dts.Log("Rows processed: " + rowsProcessed.ToString(), 0, emptyBytes);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
//An error occurred.
Dts.Events.FireError(0, "Script Task Example", ex.Message + "\r" + ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
}
外部リソース
- dougbert.com のブログ「Integration Services タスクのカスタム イベントのログ記録」
|