Hur Man Skriver Loggar

Innehållsförteckning:

Hur Man Skriver Loggar
Hur Man Skriver Loggar

Video: Hur Man Skriver Loggar

Video: Hur Man Skriver Loggar
Video: Novell 2024, Maj
Anonim

Idag sparar de flesta applikations- och systemapplikationer regelbundet information om arbetsprocessen, fel och fel i specialloggar som kallas loggar. De flesta allmänna operativsystem tillhandahåller tjänster som låter dig skriva loggar med ett standardprogrammeringsgränssnitt.

Hur man skriver loggar
Hur man skriver loggar

Nödvändig

  • - C-kompilator;
  • - Windows Platform SDK;
  • - Utveckla paket för glibc.

Instruktioner

Steg 1

Lägg till stöd för att skriva loggar till systemloggen från din applikation som är utformad för att fungera under operativsystem i Windows-familjen.

Använd funktionen RegisterEventSource API för att registrera applikationen som en händelsekälla, ReportEvent-funktionen för att lägga till en post i loggen och funktionen DeregisterEventSource för att stänga handtaget som returneras av RegisterEventSource.

Det är vettigt att anropa RegisterEventSource under initialiseringen av applikationen och spara den returnerade deskriptoren hela tiden så att poster i loggen kan placeras från olika platser i programmet. Det enklaste exemplet på att skriva till Windows-loggen kan se ut så här:

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

om (hLog! = NULL)

{

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

{

// händelsen loggades framgångsrikt

}

DeregisterEventSource (hLog);

}

Mer information om semantiken för ReportEvent-funktionen finns i MSDN på https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Dessutom måste du lägga in lite data om programmets körbara modul i systemregistret och lägga till resurser i ett specifikt format till själva modulen eller ett dynamiskt bibliotek från tredje part. Mer information om registernycklarna för händelseloggtjänsten finns på

Steg 2

Loggning på Linux-kompatibla operativsystem kan vanligtvis göras med syslog-demonen. Den här tjänsten har ett applikationsnivågränssnitt i form av en uppsättning funktioner vars deklarationer placeras i syslog.h-rubrikfilen.

Använd openlog-funktionen för att skapa en anslutning till syslog-tjänsten från ett program eller ett bibliotek. Ring syslog- eller vsyslog-funktionerna för att lägga in meddelanden i loggen. Efter avslutad inspelning av händelser eller när programmet avslutas, stäng anslutningen till tjänsten genom att ringa stängningsfunktionen. Dessutom kan du konfigurera inställningarna så att de ignorerar samtal som lägger till händelseposter med en viss prioritet med setlogmask-funktionen. Ett exempel på att skriva meddelanden till loggen kan se ut så här:

openlog ("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "MyApplication lanseras med PID% d", getuid ());

syslog (LOG_INFO, "Informationsmeddelande!");

closelog ();

Mer information om parametrarna för syslog API-funktionerna finns i libc-informationsdokumentationen.

Steg 3

Skriv loggar till godtyckliga filer med hjälp av din egen implementering av delsystemet händelsepresistens. En av de enklaste lösningarna på detta problem är att skapa flera funktioner i det globala omfånget, varav en öppnar en fil med ett specifikt namn i läget Lägg till information, den andra stänger den och den tredje lägger till en meddelandesträng skickad till den som en parameter till den här filen. Konceptuellt liknar den här lösningen syslog-programmeringsgränssnittet i Linux.

Använd funktionerna fopen och fclose i C-standardbiblioteket för att öppna och stänga en fil. Ring fwrite för att lägga till information i filen. Du kan också använda plattformsspecifika funktioner (till exempel CreateFile under Windows) och metoder för objekt i ramarna som används som inkapslar funktionaliteten för att arbeta med filer.

Rekommenderad: