So Schreiben Sie Protokolle Log

Inhaltsverzeichnis:

So Schreiben Sie Protokolle Log
So Schreiben Sie Protokolle Log

Video: So Schreiben Sie Protokolle Log

Video: So Schreiben Sie Protokolle Log
Video: Protokoll schreiben I musstewissen Deutsch 2024, November
Anonim

Heutzutage speichern die meisten Anwendungs- und Systemanwendungen regelmäßig Informationen über den Prozess ihrer Arbeit, Fehler und Ausfälle in speziellen Protokollen, die als Protokolle bezeichnet werden. Die meisten Universalbetriebssysteme bieten Dienste, mit denen Sie Protokolle über eine Standardprogrammierschnittstelle schreiben können.

So schreiben Sie Protokolle log
So schreiben Sie Protokolle log

Notwendig

  • - C-Compiler;
  • - Windows-Plattform-SDK;
  • - Paket für glibc entwickeln.

Anweisungen

Schritt 1

Fügen Sie Unterstützung für das Schreiben von Protokollen in das Systemprotokoll Ihrer Anwendung hinzu, die für den Betrieb unter Betriebssystemen der Windows-Familie entwickelt wurde.

Verwenden Sie die RegisterEventSource-API-Funktion, um die Anwendung als Ereignisquelle zu registrieren, die ReportEvent-Funktion, um dem Protokoll einen Eintrag hinzuzufügen, und die DeregisterEventSource-Funktion, um das von RegisterEventSource zurückgegebene Handle zu schließen.

Es ist sinnvoll, RegisterEventSource während der Initialisierung der Anwendung aufzurufen und den zurückgegebenen Deskriptor ständig zu speichern, damit Einträge im Protokoll von verschiedenen Stellen im Programm platziert werden können. Das einfachste Beispiel für das Schreiben in das Windows-Protokoll könnte so aussehen:

HANDLE hLog = RegisterEventSource (NULL, "MyApplicationName");

if (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Nachrichtentext / 0", NULL))

{

// Ereignis wurde erfolgreich protokolliert

}

DeregisterEventSource (hLog);

}

Weitere Details zur Semantik der ReportEvent-Funktion finden Sie im MSDN unter https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Darüber hinaus müssen Sie einige Daten über das ausführbare Modul der Anwendung in der Systemregistrierung ablegen und Ressourcen in einem bestimmten Format zum Modul selbst oder einer dynamischen Bibliothek eines Drittanbieters hinzufügen. Weitere Informationen zu den Registrierungsschlüsseln für den Ereignisprotokolldienst finden Sie unter

Schritt 2

Die Protokollierung auf Linux-kompatiblen Betriebssystemen kann normalerweise mit dem syslog-Daemon erfolgen. Dieser Dienst verfügt über eine Schnittstelle auf Anwendungsebene in Form einer Reihe von Funktionen, deren Deklarationen in der Headerdatei syslog.h abgelegt werden.

Verwenden Sie die Openlog-Funktion, um eine Verbindung zum Syslog-Dienst von einer Anwendung oder Bibliothek aus herzustellen. Rufen Sie die syslog- oder vsyslog-Funktionen auf, um Nachrichten in das Protokoll aufzunehmen. Schließen Sie nach dem Ende der Aufzeichnung von Ereignissen oder beim Beenden der Anwendung die Verbindung zum Dienst, indem Sie die Funktion closelog aufrufen. Darüber hinaus können Sie die Einstellungen so konfigurieren, dass Anrufe ignoriert werden, die Ereignisdatensätze mit einer bestimmten Priorität hinzufügen, indem Sie die Funktion setlogmask verwenden. Ein Beispiel für das Schreiben von Nachrichten in das Protokoll könnte wie folgt aussehen:

openlog ("Meine Anwendung", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "MyApplication wird mit PID% d gestartet", getuid ());

syslog (LOG_INFO, "Informationsmeldung!");

closelog ();

Weitere Informationen zu den Parametern der Syslog-API-Funktionen finden Sie in der libc-Info-Dokumentation.

Schritt 3

Schreiben Sie Protokolle in beliebige Dateien, indem Sie Ihre eigene Implementierung des Ereignispersistenz-Subsystems verwenden. Eine der einfachsten Lösungen für dieses Problem besteht darin, mehrere Funktionen im globalen Geltungsbereich zu erstellen, von denen eine eine Datei mit einem bestimmten Namen im Modus zum Hinzufügen von Informationen öffnet, die zweite sie schließt und die dritte eine an sie übergebene Nachrichtenzeichenfolge hinzufügt als ein Parameter für diese Datei. Vom Konzept her ähnelt diese Lösung der Syslog-Programmierschnittstelle in Linux.

Verwenden Sie die Funktionen fopen und fclose der C-Standardbibliothek, um eine Datei zu öffnen bzw. zu schließen. Rufen Sie fwrite auf, um der Datei Informationen hinzuzufügen. Sie können auch plattformspezifische Funktionen (zB CreateFile unter Windows) und Methoden von Objekten der verwendeten Frameworks verwenden, die die Funktionalität der Arbeit mit Dateien kapseln.

Empfohlen: