Aracılığıyla paylaş


Olay Günlüğü Dosya Biçimi

Her olay günlüğü, sabit bir boyuta sahip bir üst bilgi (ELF_LOGFILE_HEADER yapısıyla temsil edilir), ardından değişken sayıda olay kaydı (EVENTLOGRECORD yapıları ile gösterilir) ve bir dosya sonu kaydı (ELF_EOF_RECORD yapısıyla gösterilir) içerir.

ELF_LOGFILE_HEADER yapısı ve ELF_EOF_RECORD yapısı, olay günlüğü oluşturulduğunda olay günlüğüne yazılır ve günlüğe her olay yazıldığında güncelleştirilir.

Bir uygulama olay günlüğüne girdi yazmak için ReportEvent işlevini çağırdığında, sistem parametreleri olay günlüğü hizmetine geçirir. Olay günlüğü hizmeti, olay günlüğüne bir EVENTLOGRECORD yapısı yazmak için bu bilgileri kullanır. Aşağıdaki diyagramda bu işlem gösterilmektedir.

günlük dosyası yazma

Olay kayıtları aşağıdaki yollardan biriyle düzenlenir:

  • Sarmalama değil. En eski kayıt, olay günlüğü başlığından hemen sonradır ve yeni kayıtlar eklenen son kayıt (ELF_EOF_RECORDönce) sonra eklenir. Aşağıdaki örnekte sarmalanmamış yöntem gösterilmektedir:

    HEADER                   (ELF_LOGFILE_HEADER)
    EVENT RECORD 1           (EVENTLOGRECORD)
    EVENT RECORD 2           (EVENTLOGRECORD)
    EOF RECORD               (ELF_EOF_RECORD)
    

    Olay günlüğü oluşturulduğunda veya olay günlüğü temizlendiğinde sarmalanmama oluşabilir. Olay günlüğü boyut sınırına ulaşılana kadar olay günlüğü sarmalanmaya devam eder. Olay günlüğü boyutu, MaxSize yapılandırma değeri veya sistem kaynaklarının miktarıyla sınırlıdır.

    Olay günlüğü boyut sınırına ulaşıldığında sarmalamaya başlayabilir. Sarmalama, Bekletme yapılandırma değeri tarafından denetlenilir. Olay günlüğü yapılandırma değerleri hakkında daha fazla bilgi için bkz. Eventlog Key.

  • Kaydırma. Kayıtlar döngüsel arabellek olarak düzenlenir. Yeni kayıtlar eklendikçe, en eski kayıtlar değiştirilir. En eski ve en yeni kayıtların konumu değişir. Aşağıdaki örnekte sarmalama yöntemi gösterilmektedir.

    HEADER                   (ELF_LOGFILE_HEADER)
    Part of EVENT RECORD 300 (EVENTLOGRECORD)
    EVENT RECORD 301         (EVENTLOGRECORD)
    .
    .
    .
    EVENT RECORD 400         (EVENTLOGRECORD)
    EOF RECORD               (ELF_EOF_RECORD)
    Wasted space
    EVENT RECORD 102         (EVENTLOGRECORD)
    EVENT RECORD 103         (EVENTLOGRECORD)
    .
    .
    .
    EVENT RECORD 299         (EVENTLOGRECORD)
    Part of EVENT RECORD 300 (EVENTLOGRECORD)
    

    Örnekte en eski kayıt artık 1 değil, 1 ile 101 arasındaki kayıtların alanının üzerine yazıldığı için 102'dir.

    sistem en yeni kayıt için boş alan açmak üzere tam sayıdaki kayıtları sileceğinden, ELF_EOF_RECORD ile en eski kayıt arasında bir boşluk vardır. Örneğin, en yeni kayıt 100 bayt uzunluğundaysa ve en eski iki kayıt 75 bayt uzunluğundaysa, sistem en eski iki kaydı kaldırır. Daha sonra yeni kayıtlar yazıldığında fazladan 50 bayt kullanılır.

    Olay günlüğü dosyasının boyutu sabittir ve dosya sarmalamadaki kayıtlar, dosyanın sonundaki kayıt genellikle iki kayda bölünür. Örneğin, sonraki yazmanın konumu dosyanın sonundan 100 bayt ve kaydın boyutu 300 bayt ise, ilk 100 bayt dosyanın sonuna yazılır ve sonraki 200 bayt ELF_LOGFILE_HEADERhemen sonra dosyanın başına yazılır. Dosyanın sonundaki kullanılabilir alan EVENTLOGRECORD (0x38 bayt) sabit bölümünden küçükse, yeni kaydın tümü ELF_LOGFILE_HEADERhemen sonra dosyanın başına yazılır. Dosyanın sonundaki kullanılmayan baytlar, desen 0x00000027 doldurulur.

Daha fazla bilgi ve kod örneği için bkz. olay raporlama .