Visual C++ kullanarak bir olay günlüğüne girdi yazma

Bu makalede, Microsoft .NET Framework kullanarak işletim sisteminin olay günlüğüne kendi girdilerinizi nasıl ekleyeceğiniz açıklanır.

Orijinal ürün sürümü: Visual C++
Özgün KB numarası: 815661

Gereksinimler

Visual Studio .NET

Bir olay günlüğüne girdi yazma

Olay günlüğü, uygulamalarınızın önemli yazılım ve donanım olaylarını kaydetmesi için standart, merkezi bir yol sağlar. Windows, günlükleri görüntülemek için standart bir kullanıcı arabirimi sağlar: Olay Görüntüleyicisi. Ortak dil çalışma zamanı EventLog bileşenini kullanarak, hem yerel hem de uzak bilgisayarlarda mevcut olay günlüklerine kolayca bağlanabilir ve bu günlüklere girdi yazabilirsiniz. Ayrıca, mevcut günlüklerdeki girdileri okuyabilir ve kendi özel olay günlüklerinizi oluşturabilirsiniz. En basit haliyle, bir olay günlüğüne yazmak örnek uygulama oluşturmak için birkaç adımdan oluşur.

Bunu yapmak için şu adımları uygulayın:

  1. Visual Studio .NET'i başlatın.

  2. Yeni bir Visual C++ Yönetilen C++ Uygulaması projesi oluşturun.

  3. Koda aşağıdaki satırı ekleyerek system.dll başvurusu ekleyin:

    #using <system.dll>
    
  4. Kodunuzun usingSystem ilerleyen bölümlerinde bu ad alanlarının bildirimlerini nitelememek için ve System::Diagnostics ad alanları üzerindeki yönergesini kullanın. Diğer bildirimlerden önce aşağıdaki deyimleri kullanabilirsiniz:

    using namespace System;
    using namespace System::Diagnostics;
    
  5. Bir olay günlüğüne yazmak için birkaç bilgi parçasına sahip olmanız gerekir:

    • İletiniz
    • Yazmak istediğiniz günlüğün adı (henüz yoksa oluşturulur)
    • Olayın kaynağını temsil eden dize

    Belirli bir kaynağı yalnızca tek bir olay günlüğüne kaydedebilirsiniz. birden fazla günlüğe ileti yazmak istiyorsanız, birden çok kaynak tanımlamanız gerekir.

    String^ sSource;
    String^ sLog;
    String^ sEvent;
    
    sSource = gcnew String("dotNET Sample App1");
    sLog = gcnew String("Application1");
    sEvent = gcnew String("Sample Event1");
    
  6. Belirli bir olay günlüğüyle ilişkilendirilmiş bu kaynağı oluşturmak için, kaynağınızın mevcut olup olmadığını ve kaynak mevcut değilse bunu denetlemek için sınıfının iki statik yöntemini EventLog kullanın. Belirttiğiniz günlük adı yoksa, günlüğe ilk girdinizi yazdığınızda ad otomatik olarak oluşturulur. Varsayılan olarak, yöntemine CreateEventSource günlük adı sağlamazsanız günlük dosyası Uygulama Günlüğü olarak adlandırılır.

    if(!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource,sLog);
    
  7. Olay günlüğüne ileti yazmak için statik yöntemini EventLog.WriteEntrykullanabilirsiniz. Bu yöntemin birkaç farklı aşırı yüklenmiş sürümü vardır. Aşağıdaki örnek kod, en basit yöntemi (kaynak dizeyi ve iletinizi alan) ve daha karmaşık yöntemlerden birini (olay kimliğini ve olay türünü belirtmeyi destekler) gösterir:

    EventLog::WriteEntry(sSource,sEvent);
    EventLog::WriteEntry(sSource, sEvent, EventLogEntryType::Warning, 235);
    
  8. Uygulamanızı kaydedin. Uygulamanızı çalıştırın ve ardından yeni olaylarınızı görmek için Olay Görüntüleyicisi uygulama oturumunu denetleyin.

Visual C++ .NET'te tam kod listesi

#include <tchar.h>
#using <system.dll>
#using <mscorlib.dll>

using namespace System;
using namespace System::Diagnostics;

int _tmain()
{
    String^ sSource;
    String^ sLog;
    String^ sEvent;

    sSource = gcnew String("dotNET Sample App1");
    sLog = gcnew String("Application1");
    sEvent = gcnew String("Sample Event1");

     if(!EventLog::SourceExists(sSource))
       EventLog::CreateEventSource(sSource,sLog);

    EventLog::WriteEntry(sSource,sEvent);
    EventLog::WriteEntry(sSource, sEvent,
    EventLogEntryType::Warning, 234);
    return 0;
}