Hoe Om Logboeke Te Skryf

INHOUDSOPGAWE:

Hoe Om Logboeke Te Skryf
Hoe Om Logboeke Te Skryf

Video: Hoe Om Logboeke Te Skryf

Video: Hoe Om Logboeke Te Skryf
Video: Hoe om 'n Opstel te Skryf 2024, Mei
Anonim

Vandag stoor die meeste toepassings- en stelseltoepassings gereeld inligting oor die proses van hul werk, foute en mislukkings in spesiale logs wat logs genoem word. Die meeste algemene bedryfstelsels bied dienste waarmee u logboeke kan skryf met behulp van 'n standaardprogrammeringskoppelvlak.

Hoe om logboeke te skryf
Hoe om logboeke te skryf

Nodig

  • - C samesteller;
  • - Windows-platform SDK;
  • - Ontwikkel pakket vir glibc.

Instruksies

Stap 1

Voeg ondersteuning vir die skryf van logboeke by die stelsellogboek vanuit u toepassing wat ontwerp is om onder die Windows-bedryfstelsels te werk.

Gebruik die RegisterEventSource API-funksie om die toepassing as 'n gebeurtenisbron te registreer, die ReportEvent-funksie om 'n inskrywing by die logboek te voeg en die DeregisterEventSource-funksie om die handvatsel wat deur RegisterEventSource teruggestuur word, te sluit.

Dit is sinvol om RegisterEventSource te skakel tydens die initialisering van die toepassing en die teruggestuurde beskrywer heeltyd te stoor, sodat die inskrywings in die logboek vanaf verskillende plekke in die program geplaas kan word. Die eenvoudigste voorbeeld om na die Windows-logboek te skryf, kan so lyk:

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

as (hLog! = NULL)

{

as (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Boodskapteks / 0", NULL))

{

// gebeurtenis is suksesvol aangeteken

}

DeregisterEventSource (hLog);

}

Meer besonderhede oor die semantiek van die ReportEvent-funksie kan gevind word in MSDN op https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Daarbenewens moet u data oor die uitvoerbare module van die toepassing in die stelselregister plaas en bronne in 'n spesifieke formaat by die module self of 'n dinamiese biblioteek van derdes voeg. Raadpleeg https://msdn.microsoft.com/en-us/library/windows/desktop/aa363661%28v=vs.85%29.aspx vir meer inligting oor die registersleutels vir die geleentheidslogdiens.

Stap 2

Aanmelding op Linux-versoenbare bedryfstelsels kan gewoonlik met die syslog-demoon gedoen word. Hierdie diens het 'n koppelvlak op toepassingsvlak in die vorm van 'n stel funksies waarvan die verklarings in die syslog.h-koplêer geplaas word.

Gebruik die openlog-funksie om 'n verbinding met die syslog-diens vanaf 'n toepassing of biblioteek te skep. Bel die syslog- of vsyslog-funksies om boodskappe in die logboek te plaas. Sluit die verbinding met die diens na afloop van die opname van gebeure of wanneer die aansoek verlaat word deur die sluitingsfunksie te skakel. Daarbenewens kan u die instellings opstel om oproepe wat gebeurtenisrekords met 'n spesifieke prioriteit byvoeg, te ignoreer deur die setlogmask-funksie te gebruik. 'N Voorbeeld van die skryf van boodskappe in die logboek kan so lyk:

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

syslog (LOG_NOTICE, "MyApplication is gestart met PID% d", getuid ());

syslog (LOG_INFO, "Inligtingsboodskap!");

closelog ();

Vir meer inligting oor die parameters van die syslog API-funksies, sien die libc-inligtingdokumentasie.

Stap 3

Skryf logboeke na arbitrêre lêers met behulp van u eie implementering van die substelsel vir gebeurtenisbestendigheid. Een van die eenvoudigste oplossings vir hierdie probleem is om verskeie funksies in die globale omvang te skep, waarvan een 'n lêer met 'n spesifieke naam in die modus 'Voeg inligting' oopmaak, die tweede sluit dit en die derde 'n boodskapstring byvoeg wat as 'n parameter vir hierdie lêer. Konseptueel lyk hierdie oplossing op die syslog-programmeringskoppelvlak in Linux.

Gebruik die fopen- en fclose-funksies van die C-standaardbiblioteek om onderskeidelik 'n lêer oop en toe te maak. Bel fwrite om inligting by die lêer te voeg. U kan ook platformspesifieke funksies gebruik (byvoorbeeld CreateFile onder Windows) en metodes van voorwerpe van die raamwerke wat gebruik word om die funksionaliteit van die werk met lêers saam te vat.

Aanbeveel: