Schreiben in ein Ereignisprotokoll mit Visual C++

Eine Microsoft Visual C# .NET Version dieses Artikels finden Sie unter 307024 .

Eine Microsoft Visual Basic .NET Version dieses Artikels finden Sie unter 301279 .


Dieser Artikel bezieht sich auf die folgenden Namespaces für Microsoft.NET Framework-Klassenbibliothek:
  • System
  • System.Diagnostics

Einführung

Dieser Artikel beschreibt das Hinzufügen eigener Einträge in das Ereignisprotokoll des Betriebssystems mit Microsoft.NET Framework.

Weitere Informationen

Voraussetzungen

Die folgende Liste beschreibt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks aufgeführt:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server oder Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft Visual Studio 2005

Schreiben Sie in ein Ereignisprotokoll

Protokollierung ermöglicht zentrale Anwendung wichtige Software- und Ereignisse. Windows bietet eine Standardbenutzeroberfläche zum Anzeigen der Protokolle: die Ereignisanzeige. Mithilfe von common Language Runtime EventLog -Komponente können weltweit auf Ereignisprotokolle, auf lokalen und Remotecomputern, und Einträge in diese Protokolle schreiben. Sie können auch Einträge aus vorhandenen Protokollen lesen und eigene benutzerdefinierte Ereignisprotokolle erstellen. In seiner einfachsten Form beinhaltet das Schreiben in ein Ereignisprotokoll Schritte zum Erstellen einer beispielanwendung.

Gehen Sie hierzu folgendermaßen vor:
  1. Starten Sie Visual Studio .NET oder Visual Studio 2005.
  2. Erstellen eines neuen Visual C++-Anwendung.

    Hinweis Folgendermaßen Sie in Visual C++ .NET 2003 vor:
    1. Klicken Sie unter Projekttypenauf Visual C++-Projekte.
    2. Unter
      Vorlagen, klicken Sie auf
      Konsolenanwendung (.NET).
    Folgendermaßen Sie in Visual C++ 2005 vor:
    1. Klicken Sie unter Projekttypenauf Visual C++.
    2. Unter
      Vorlagen, klicken Sie auf
      CLR Console Application.
  3. Fügen Sie einen Verweis auf system.dll durch den Code die folgende Zeile hinzufügen:
    #using <system.dll>
  4. Verwenden Sie die Richtlinie für die System- und System:: Diagnostics Namespaces, damit Sie keinen Deklarationen aus diesen Namespaces in den Programmquelltext aufzunehmen. Sie müssen die folgende Anweisung vor allen anderen Deklarationen verwenden:
    using namespace System;using namespace System::Diagnostics;
  5. Um in ein Ereignisprotokoll schreiben, müssen Sie mehrere Informationsarten: Ihre Nachricht, den Namen des Protokolls Sie soll schreiben (Dies wird erstellt, wenn es nicht bereits vorhanden ist) und eine Zeichenfolge, die die Quelle des Ereignisses darstellt. Sie können eine bestimmte Quelle mit nur einem einzigen Ereignisprotokoll registrieren; Wenn Sie Nachrichten über ein Protokoll schreiben möchten, müssen Sie mehrere Quellen definieren.
    String *sSource;String *sLog;
    String *sEvent;

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

  6. Verwenden der EventLog -Klasse zwei statischer Methoden überprüfen, ob die Quelle vorhanden ist und nicht vorhanden ist, diese Quelle erstellen, die mit einem bestimmten Protokoll verknüpft ist. Wenn das angegebene Protokollname nicht vorhanden ist, wird der Name automatisch erstellt, wenn Sie den ersten Eintrag in das Protokoll schreiben. Standardmäßig Wenn Sie keinen Protokollnamen CreateEventSource -Methode angeben die Protokolldatei Anwendungsprotokoll heißt.
    if(!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource,sLog);
  7. Um eine Meldung in das Ereignisprotokoll zu schreiben, können Sie die statische Methode EventLog.WriteEntry. Diese Methode hat verschiedene überladene Versionen. Der folgende Code zeigt die einfachste Methode (dies dauert eine Quellzeichenfolge und Ihre Meldung), und eine der komplexeren Methoden (das Angeben der Ereignis-ID und Ereignistyp unterstützt):
    EventLog::WriteEntry(sSource,sEvent);EventLog::WriteEntry(sSource, sEvent, EventLogEntryType::Warning, 235);
  8. Speichern Sie die Anwendung. Führen Sie die Anwendung, und überprüfen Sie das Anwendungsprotokoll in der Ereignisanzeige auf neue Ereignisse.

Vollständige Codeliste in Visual C++. NET

#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 = new String("dotNET Sample App1");
sLog = new String("Application1");
sEvent = new String("Sample Event1");

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

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

Vollständige Codeliste in Visual C++ 2005

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

using namespace System;
using namespace System::Diagnostics;

int main()
{
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;
}
Eigenschaften

Artikelnummer: 815661 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback