Günlüğü ve günlük girişleri bir veri tanımlama bileşen akış
Özel veri akışı bileşenleri kullanarak varolan bir günlük girişi için iletileri gönderebilirsiniz PostLogMessage yöntem, IDTSComponentMetaData100 arabirim.Bunlar da bilgileri kullanıcıya kullanarak sunabilirsiniz FireInformation yöntem veya benzer yöntemleri IDTSComponentMetaData100 arabirim.Ancak, bu yaklaşım yükseltme ve diğer olayları işleme yükü çeker ve bunlara ilgilendirebilecek iletiler için ayrıntılı bilgi iletileri yoluyla SIFT kullanıcının zorlar.Özel günlüğü girişi aşağıda açıklandığı gibi bileşeninizi kullanıcılara sonuçlanmaz etiketli özel günlük bilgi sağlamak için kullanabilirsiniz.
Kaydetme ve özel günlüğü girişi kullanma
Özel Kütüğü Girişi kaydetme
Yaptığınız bileşen tarafından kullanılmak üzere özel bir günlük girişi kaydetmek için geçersiz kılın RegisterLogEntries yöntem, PipelineComponent temel sınıfaAşağıdaki örnek, bir özel günlük girdisi kaydeder ve bir ad ve açıklama sağlar.
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 event will be logged:
DTSLEF_OCCASIONAL: Olay her yürütme sırasında değil yalnızca bazen günlüğe kaydedilir.
DTSLEF_CONSISTENT: Olay günlüğe bir sabit sayıda her yürütme sırasında.
DTSLEF_PROPORTIONAL: Olay günlüğe bir kaç kez için tamamlanan çalışma miktarı doğru orantılı.
Kullandığı Yukarıdaki örnek DTSLEF_CONSISTENT çünkü bileşeni bekler oturum bir giriş başına bir kez yürütme.
Özel Kütüğü Girişi kaydetme ve eklendikten sonra bir örnek sizin özel bileşeni için veri akışı Tasarımcı yüzey, oturum Tasarımcısı iletişim kutusunda görüntüler "My özel bileşen günlük girişi" adıyla yeni bir günlük girdisi Varolan günlük girdileri listesinde.
Bir özel günlük girdisi günlüğe kaydetme
Özel günlük girdisi kaydolduktan sonra bileşen şimdi özel iletileri günlüğe kaydedebilir.Aşağıdaki örnek, bir özel günlüğü girişi sırasında Yazar PreExecute metnini içeren yöntem bir SQL deyim bileşen. tarafından kullanılan
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
Şimdi ne zaman kullanıcı paket "My özel bileşen günlük girişi" seçtikten sonra yürütür de oturum iletişim kutusunda, günlük içeriği açıkça "User::My özel bileşen günlük girdisi." etiketli bir giriş Bu yeni günlük girdisi sql deyim, zaman damgası ve geliştirici tarafından günlüğe kaydedilen her türlü ek verinin metnini içerir.
|
Ayrıca bkz.