Günlüğü ve günlük girişleri bir veri tanımlama bileşen akış

Özel veri akışı bileşenlerini sonrası iletileri için varolan günlük girdisini kullanarak PostLogMessageyöntemi IDTSComponentMetaData100arabirimi. Onlar da bilgileri kullanıcıya kullanarak sunabilirsiniz FireInformationyöntemini veya benzer yöntemleri IDTSComponentMetaData100arabirimi. Ancak, bu yaklaşım, yetiştirme ve ek olayları işleme yükü doğurur ve onlara ilgi olabilecek iletiler için ayrıntılı bilgi iletileri üzerinden elemek için kullanıcı zorlar. Bileşeniniz kullanıcılara belirgin etiketli özel günlük bilgi sağlamak için aşağıda açıklandığı gibi özel bir günlük girişi kullanabilirsiniz.

Kaydetme ve özel günlüğü girişi kullanma

Özel günlüğü girişi kaydetme

Bileşeni tarafından kullanılmak üzere özel bir günlük girişi kaydetmek için geçersiz RegisterLogEntriesyöntemi PipelineComponenttemel sınıf Aşağıdaki örnek, özel bir günlük girişi 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);
    }
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
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

DTSLogEntryFrequencyNumaralandırma hakkında olay günlüğe ne sıklıkta Çalışma Zamanı için bir ipucu sağlar:

Kullandığı yukarıdaki örnekte DTSLEF_CONSISTENTbileşeni bir giriş her yürütme oturum beklediği.

Sonra özel bir günlük girişi kaydetme ve özel bileşen örneği için veri akışı Tasarımcı yüzey, ekleme oturum Tasarımcısı iletişim kutusunda görüntüler "Benim özel bileşen günlük girdisi" adıyla yeni bir günlük girdisi mevcut günlük girdileri listesinde.

Özel günlüğü girişi için günlüğü

Özel bir günlük girişi kaydolduktan sonra bileşen şimdi özel mesajlar günlüğe kaydedebilir. Aşağıdaki örnek bir özel bir günlük girişi sırasında yazıyor PreExecutebileşeni tarafından kullanılan bir sql deyimi metin içeren yöntemi.

    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 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
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ı paketi, "benim özel bileşen günlüğü girişi" seçtikten sonra yürütür içinde oturum iletişim kutusunda, günlük net bir şekilde "User::My özel bileşen günlüğü girişi." etiketli bir girdi içerir Bu yeni günlük girdisi sql deyimi, zaman damgası ve geliştirici tarafından günlüğe ek verileri metin içeriyor.

Integration Services simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.

Ayrıca bkz.

Görevler

Implementing Logging in Packages

Kavramlar

Tümleştirme Hizmetleri günlüğü