Hvordan Skrive Logger

Innholdsfortegnelse:

Hvordan Skrive Logger
Hvordan Skrive Logger

Video: Hvordan Skrive Logger

Video: Hvordan Skrive Logger
Video: Hvordan skrive ut hele saken, epost og logg 2024, Desember
Anonim

I dag lagrer de fleste applikasjons- og systemapplikasjoner med jevne mellomrom informasjon om prosessen med arbeidet, feil og feil i spesielle logger som kalles logger. De fleste generelle operativsystemer tilbyr tjenester som lar deg skrive logger ved hjelp av et standard programmeringsgrensesnitt.

Hvordan skrive logger
Hvordan skrive logger

Nødvendig

  • - C kompilator;
  • - Windows Platform SDK;
  • - Utvikle pakke for glibc.

Bruksanvisning

Trinn 1

Legg til støtte for å skrive logger til systemloggen fra applikasjonen din designet for å fungere under operativsystemer i Windows-familien.

Bruk RegisterEventSource API-funksjonen til å registrere applikasjonen som en hendelseskilde, ReportEvent-funksjonen for å legge til en oppføring i loggen, og DeregisterEventSource-funksjonen for å lukke håndtaket som returneres av RegisterEventSource.

Det er fornuftig å ringe til RegisterEventSource under initialiseringen av applikasjonen og lagre den returnerte deskriptoren hele tiden, slik at oppføringer i loggen kan plasseres fra forskjellige steder i programmet. Det enkleste eksemplet på å skrive til Windows-loggen kan se slik ut:

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

hvis (hLog! = NULL)

{

hvis (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Meldingstekst / 0", NULL))

{

// hendelsen ble logget

}

DeregisterEventSource (hLog);

}

Mer informasjon om semantikken til ReportEvent-funksjonen finner du i MSDN på https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. I tillegg må du legge inn noen data om programmets kjørbare modul i systemregisteret, og legge til ressurser i et bestemt format til selve modulen eller et dynamisk tredjepartsbibliotek. For mer informasjon om registernøklene for hendelsesloggtjenesten, se

Steg 2

Logging på Linux-kompatible operativsystemer kan vanligvis gjøres ved hjelp av syslog-demonen. Denne tjenesten har et applikasjonsnivågrensesnitt i form av et sett med funksjoner, hvis erklæringer er plassert i syslog.h-headerfilen.

Bruk openlog-funksjonen til å opprette en forbindelse til syslog-tjenesten fra et program eller et bibliotek. Ring syslog- eller vsyslog-funksjonene for å sette meldinger i loggen. Etter avslutningen av opptakshendelsene eller når applikasjonen avsluttes, lukker du forbindelsen til tjenesten ved å ringe lukkingsloggfunksjonen. I tillegg kan du konfigurere innstillingene for å ignorere anrop som legger til hendelsesposter med en spesifikk prioritet ved hjelp av setlogmask-funksjonen. Et eksempel på å skrive meldinger til loggen kan se slik ut:

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

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

syslog (LOG_INFO, "Informasjonsmelding!");

closelog ();

For mer informasjon om parametrene til syslog API-funksjonene, se dokumentasjonen for libc-informasjon.

Trinn 3

Skriv logger til vilkårlige filer ved å bruke din egen implementering av delsystemet hendelses persistens. En av de enkleste løsningene på dette problemet er å opprette flere funksjoner i det globale omfanget, hvorav den ene åpner en fil med et spesifikt navn i legg til informasjonsmodus, den andre lukker den, og den tredje legger til en meldingsstreng sendt til den som en parameter til denne filen. Konseptuelt ligner denne løsningen syslog programmeringsgrensesnittet i Linux.

Bruk fopen- og fclose-funksjonene til C-standardbiblioteket for å åpne og lukke en fil. Ring fwrite for å legge til informasjon i filen. Du kan også bruke plattformsspesifikke funksjoner (for eksempel CreateFile under Windows) og metoder for objekter fra rammeverkene som brukes som innkapsler funksjonaliteten til å jobbe med filer.

Anbefalt: