Cum Se Scrie Jurnale

Cuprins:

Cum Se Scrie Jurnale
Cum Se Scrie Jurnale
Anonim

Astăzi, majoritatea aplicațiilor și aplicațiilor de sistem salvează periodic informații despre procesul de lucru, erori și eșecuri în jurnalele speciale numite jurnale. Majoritatea sistemelor de operare cu scop general oferă servicii care vă permit să scrieți jurnale utilizând o interfață de programare standard.

Cum se scrie jurnale
Cum se scrie jurnale

Necesar

  • - compilator C;
  • - SDK Windows Platform;
  • - Dezvoltați pachetul pentru glibc.

Instrucțiuni

Pasul 1

Adăugați asistență pentru scrierea jurnalelor în jurnalul de sistem din aplicația dvs. concepută pentru a funcționa în sistemele de operare din familia Windows.

Utilizați funcția API RegisterEventSource pentru a înregistra aplicația ca sursă de eveniment, funcția ReportEvent pentru a adăuga o intrare în jurnal și funcția DeregisterEventSource pentru a închide mânerul returnat de RegisterEventSource.

Este logic să apelați RegisterEventSource în timpul inițializării aplicației și să salvați descriptorul returnat tot timpul, astfel încât intrările din jurnal să poată fi plasate din diferite locuri ale programului. Cel mai simplu exemplu de scriere în jurnalul Windows ar putea arăta astfel:

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

if (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, „Text mesaj / 0”, NULL))

{

// evenimentul a fost înregistrat cu succes

}

DeregisterEventSource (hLog);

}

Mai multe detalii despre semantica funcției ReportEvent pot fi găsite în MSDN la https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. În plus, trebuie să introduceți câteva date despre modulul executabil al aplicației în registrul de sistem și să adăugați resurse într-un format specific modulului în sine sau o bibliotecă dinamică terță parte. Pentru mai multe informații despre cheile de registry pentru serviciul de jurnal de evenimente, consultați

Pasul 2

Conectarea la sisteme de operare compatibile cu Linux se poate face de obicei folosind demonul syslog. Acest serviciu are o interfață la nivel de aplicație sub forma unui set de funcții, ale căror declarații sunt plasate în fișierul antet syslog.h.

Utilizați funcția openlog pentru a crea o conexiune la serviciul syslog dintr-o aplicație sau bibliotecă. Apelați funcțiile syslog sau vsyslog pentru a introduce mesaje în jurnal. După încheierea înregistrării evenimentelor sau la ieșirea aplicației, închideți conexiunea la serviciu apelând funcția closelog. În plus, puteți configura setările pentru a ignora apelurile care adaugă înregistrări de evenimente cu o anumită prioritate utilizând funcția setlogmask. Un exemplu de scriere a mesajelor în jurnal ar putea arăta astfel:

openlog („Aplicația mea”, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "MyApplication este lansat cu PID% d", getuid ());

syslog (LOG_INFO, „Mesaj informativ!”);

closelog ();

Pentru mai multe informații despre parametrii funcțiilor API-ului syslog, consultați documentația cu informații despre libc.

Pasul 3

Scrieți jurnale în fișiere arbitrare utilizând propria implementare a subsistemului de persistență a evenimentelor. Una dintre cele mai simple soluții la această problemă este crearea mai multor funcții în domeniul global, dintre care una deschide un fișier cu un nume specific în modul adăugare informații, al doilea îl închide, iar al treilea adaugă un șir de mesaje care i-a fost transmis ca un parametru pentru acest fișier. Conceptual, această soluție seamănă cu interfața de programare syslog din Linux.

Utilizați funcțiile fopen și fclose ale bibliotecii standard C pentru a deschide și, respectiv, a închide un fișier. Apelați fwrite pentru a adăuga informații la fișier. De asemenea, puteți utiliza funcții specifice platformei (de exemplu, CreateFile sub Windows) și metode de obiecte ale cadrelor utilizate care încapsulează funcționalitatea de lucru cu fișiere.

Recomandat: