Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
Anpassade dataflödeskomponenter kan skicka meddelanden till en befintlig loggpost genom att använda PostLogMessage gränssnittets IDTSComponentMetaData100 metod. De kan också presentera information för användaren genom att använda FireInformation metoden eller liknande metoder i gränssnittet IDTSComponentMetaData100 . Detta tillvägagångssätt medför dock en överhead för att ta upp och hantera ytterligare händelser, och tvingar användaren att gå igenom utförliga informationsmeddelanden för de meddelanden som kan vara av intresse för dem. Du kan använda en anpassad loggpost som beskrivs nedan för att ge tydligt märkta anpassade logguppgifter till användare av din komponent.
Registrering och användning av en anpassad loggpost
Registrering av en anpassad loggpost
För att registrera en anpassad loggpost för användning av din komponent, åsidosätt RegisterLogEntries metoden för PipelineComponent basklassen. Följande exempel registrerar en anpassad loggpost och ger ett namn och en beskrivning.
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
Uppräkningen DTSLogEntryFrequency ger en ledtråd om hur ofta händelsen kommer att loggas:
DTSLEF_OCCASIONAL: Händelsen loggas endast ibland, inte vid varje körning.
DTSLEF_CONSISTENT: Händelsen loggas ett konstant antal gånger vid varje körning.
DTSLEF_PROPORTIONAL: Händelsen loggas ett antal gånger proportionellt mot mängden utfört arbete.
Exemplet ovan använder DTSLEF_CONSISTENT eftersom komponenten förväntar sig att logga en post en gång per exekvering.
Efter att ha registrerat den anpassade loggposten och lagt till en instans av din anpassade komponent på dataflödesdesignerns yta, visar loggningsdialogrutan i designern en ny loggpost med namnet "Min anpassade komponent loggpost" i listan över tillgängliga loggposter.
Logga in i en anpassad loggpost
Efter att ha registrerat den anpassade loggposten kan komponenten nu logga anpassade meddelanden. Exemplet nedan skriver en anpassad loggpost under PreExecute metoden som innehåller texten till en SQL-sats som komponenten använder.
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
När användaren nu kör paketet, efter att ha valt "Min anpassade komponent loggpost" i loggningsrutan , kommer loggen att innehålla en post tydligt märkt som "Användare::Min anpassade komponent loggpost." Denna nya loggpost innehåller texten till SQL-satsen, tidsstämpeln och eventuell ytterligare data som utvecklaren har loggat.