Rejestrowanie i definiowanie wpisy dziennika w składnik przepływu danych
Składniki przepływ danych niestandardowych można ogłaszać wiadomości istniejącego wpisu dziennika za pomocą PostLogMessage(String, String, String, DateTime, DateTime, Int32, array<Byte[]%) Metoda IDTSComponentMetaData100 interfejs. Można również stanowią one informacje do użytkownika za pomocą FireInformation(Int32, String, String, String, Int32, Boolean%) Metoda lub podobnej metody IDTSComponentMetaData100 interfejs. Jednak ta metoda wiąże obciążenie podnoszenia i obsługi zdarzeń dodatkowe i wymusza na użytkowniku przesiewie za pośrednictwem pełne komunikaty informacyjne dla wiadomości, które mogą być przydatne do nich.Można użyć wpisu dziennika niestandardowego zgodnie z poniższym opisem, do zapewnienia użytkownikom składnika wyraźnie oznaczony niestandardowe informacje dziennika.
Rejestrowanie i używanie wpisu dziennika niestandardowego
Rejestrowanie wpisów dziennika niestandardowego
Aby zarejestrować wpis dziennika niestandardowych do użytku przez składnik, należy zastąpić RegisterLogEntries() Metoda PipelineComponent Klasa podstawowa. W poniższym przykładzie rejestruje wpisów dziennika niestandardowego i zawiera nazwę i opis.
using Microsoft.SqlServer.Dts.Runtime;
...
private const string MyLogEntryName = "My Custom Component Log Entry";
private const string MyLogEntryDescription = "Log entry from My Custom Component ";
...
public override void RegisterLogEntries()
{
this.LogEntryInfos.Add(MyLogEntryName,
MyLogEntryDescription,
Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSLogEntryFrequency.DTSLEF_CONSISTENT);
}
Imports Microsoft.SqlServer.Dts.Runtime
...
Private Const MyLogEntryName As String = "My Custom Component Log Entry"
Private Const MyLogEntryDescription As String = "Log entry from My Custom Component "
...
Public Overrides Sub RegisterLogEntries()
Me.LogEntryInfos.Add(MyLogEntryName, _
MyLogEntryDescription, _
Microsoft.SqlServer.Dts.Runtime.Wrapper.DTSLogEntryFrequency.DTSLEF_CONSISTENT)
End Sub
The DTSLogEntryFrequency enumeration provides a hint to the runtime about how frequently the zdarzenie will be logged:
DTSLEF_OCCASIONAL(): Zdarzenie jest rejestrowane tylko czasem nie podczas wykonywania każdej.
DTSLEF_CONSISTENT(): Zdarzenie jest rejestrowane stała liczbę razy w każdym wykonaniu.
DTSLEF_PROPORTIONAL(): Zdarzenie jest rejestrowane wielokrotnie proporcjonalny do ilości pracy wykonanej.
W powyższym przykładzie użyto DTSLEF_CONSISTENT() ponieważ składnik oczekuje się wpis raz na wykonanie.
Po rejestracji wpisu dziennika niestandardowych i Dodawanie wystąpienie składnika niestandardowego do powierzchni projektanta przepływów danych Rejestrowanie w Projektancie wyświetlone okno dialogowe Nowy wpis dziennika o nazwie "Moje niestandardowe składników wpis dziennika" na liście wpisów dziennika dostępny.
Logowanie do wpisów dziennika niestandardowego
Po zarejestrowaniu wpisu dziennika niestandardowego składnika może teraz rejestrować komunikaty niestandardowe.Poniższy przykład zapisuje wpisów dziennika niestandardowego ciągu PreExecute() Metoda, która zawiera tekst instrukcja języka SQL, używane przez składnik.
public override void PreExecute()
{
DateTime now = DateTime.Now;
byte[] additionalData = null;
this.ComponentMetaData.PostLogMessage(MyLogEntryName,
this.ComponentMetaData.Name,
"Command Sent was: " + myCommand.CommandText,
now, now, 0, ref additionalData);
}
Public Overrides Sub PreExecute()
Dim now As DateTime = DateTime.Now
Dim additionalData As Byte() = Nothing
Me.ComponentMetaData.PostLogMessage(MyLogEntryName, _
Me.ComponentMetaData.Name, _
"Command Sent was: " + myCommand.CommandText, _
now, now, 0, additionalData)
End Sub
Teraz gdy użytkownik wykonuje pakiet, po wybraniu polecenia "" Moje niestandardowe składników wpis dziennika"w Rejestrowanie-okno dialogowe, że dziennik będzie zawierać wpis wyraźnie oznaczony jako "User::My niestandardowy składnik wpis dziennika. „ Ten nowy wpis dziennika zawiera tekst instrukcja języka SQL, sygnaturę czasową oraz wszelkie dodatkowe dane rejestrowane przez projektanta.
|