Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
Niestandardowe komponenty przepływu IDTSComponentMetaData100 danych mogą wysyłać wiadomości do istniejącego wpisu w dzienniku, korzystając z PostLogMessage metody interfejsu. Mogą także prezentować użytkownikowi informacje, korzystając z FireInformation metody lub podobnych metod interfejsu IDTSComponentMetaData100 . Jednak takie podejście wiąże się z obciążeniem związanym z podnoszeniem i obsługą dodatkowych zdarzeń oraz zmusza użytkownika do przeszukiwania rozbudowanych komunikatów informacyjnych w poszukiwaniu tych, które mogą go zainteresować. Możesz użyć niestandardowego wpisu w dzienniku, jak opisano poniżej, aby udostępnić użytkownikom komponentu wyraźnie oznaczone informacje o niestandardowych dziennikach.
Rejestracja i użycie niestandardowego wpisu w logu
Rejestracja niestandardowego wpisu w dzienniku
Aby zarejestrować niestandardowy wpis logowy do użycia przez komponent, nadpisz metodę RegisterLogEntriesPipelineComponent klasy bazowej. Poniższy przykład rejestruje niestandardowy wpis w dzienniku oraz podaje nazwę oraz 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
Wyliczanie DTSLogEntryFrequency daje wskazówkę dotyczącą czasu wykonywania dotyczącą częstotliwości rejestrowania zdarzenia:
DTSLEF_OCCASIONAL: Zdarzenie jest rejestrowane tylko czasami, nie podczas każdej egzekucji.
DTSLEF_CONSISTENT: Zdarzenie jest rejestrowane stałą liczbą razy podczas każdego wykonywania.
DTSLEF_PROPORTIONAL: Zdarzenie jest rejestrowane wielokrotnie proporcjonalnie do ilości wykonanej pracy.
Powyższy przykład wykorzystuje DTSLEF_CONSISTENT fakt, że komponent oczekuje zaksięgowania wpisu raz na wykonanie.
Po zarejestrowaniu niestandardowego wpisu w logu i dodaniu instancji własnego komponentu do powierzchni projektanta przepływu danych, okno dialogowe Logowanie w projektantze wyświetla nowy wpis o nazwie "My Custom Component Log Entry" na liście dostępnych wpisów.
Logowanie do niestandardowego wpisu w dzienniku
Po zarejestrowaniu niestandardowego wpisu w dzienniku komponent może teraz rejestrować niestandardowe komunikaty. Poniższy przykład zapisuje niestandardowy wpis w logu podczas metody PreExecute , który zawiera tekst instrukcji SQL używanej przez komponent.
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 uruchamia pakiet, po wybraniu "Mój niestandardowy wpis w logu" w oknie dialogowym Logowanie , dziennik będzie zawierał wpis wyraźnie oznaczony jako "User::My Custom Component Log Entry." Ten nowy wpis w logu zawiera tekst instrukcji SQL, znacznik czasu oraz wszelkie dodatkowe dane zarejestrowane przez programistę.