Viens no galvenajiem veidiem, kā diagnosticēt darbības traucējumus programmatūras darbībā, kas jau darbojas lietotāja datorā, ir notikumu žurnālu - žurnālu - uzturēšana. Parasti viņi kritiskās kļūmes gadījumā reģistrē informāciju par palaišanu, kā arī svarīgu informāciju par procesa stāvokli un sistēmas vidi. Žurnālus var izveidot gan ar saviem līdzekļiem, gan izmantojot operētājsistēmu īpašos pakalpojumus.
Tas ir nepieciešams
- - tulks no lietotās programmēšanas valodas;
- - iespējams, Windows platformas SDK;
- - iespējams, izstrādes pakete glibc.
Instrukcijas
1. solis
Analizējiet lietošanas noteikumus un izveidojiet prasības izstrādātajai apakšsistēmai, komponentam vai bibliotēkai, kas veidos žurnālus. Atbildiet uz jautājumiem par to, kurā platformā vai platformās tai vajadzētu darboties, kāda būs tās API.
2. solis
Saskaņā ar identificētajām funkcionālajām funkcijām un sniegto API izveidojiet veidni mežizstrādes apakšsistēmai. Sāciet ieviest tā funkcionalitāti.
3. solis
Vienkāršākā reģistrēšanas iespēja ir patstāvīgi izveidot failus vietā, kuru nosaka lietojumprogrammas konfigurācija, un pēc tam ierakstīt datus jebkurā formātā. Izmantojiet C standarta bibliotēkas funkcijas (fopen, fclose, fwrite), C ++ standarta bibliotēkas straumes objektus (ofstream), izmantotās ietvara klases (piemēram, CFile, QFile) vai operētājsistēmas API funkcijas (CreateFile, WriteFile operētājsistēmā Windows).
4. solis
Ievietojiet reģistrēšanu, izmantojot syslog API, ar UNIX saderīgās operētājsistēmās. Syslog API funkcijas tiek deklarētas galvenes failā syslog.h. Pievienojiet to pareizajā vietā sava projekta avota kodā.
5. solis
Izveidojiet savienojumu ar syslog pakalpojumu, izmantojot openlog funkcijas zvanu. Kā parametrus nododiet to rādītājam virknei, kas satur lietojumprogrammas vai komponenta identifikatoru, kas rakstīs, opciju karodziņus un notikumu masku, kas jānodod žurnālam. Izmantojiet zvanus uz syslog un vsyslog funkcijām, lai žurnālam pievienotu ierakstus. Zvaniet uz closelog funkciju, lai atvienotos no pakalpojuma. Vienkāršs syslog koda piemērs varētu būt: openlog ("prefikss, LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO,"% s "," Info "); syslog (LOG_NOTICE,"% s "," Paziņojums "); closelog (); ir lietderīgi izveidot savienojumu ar syslog, inicializējot lietojumprogrammu, un atvienot, kad tiek izslēgts.
6. solis
Windows operētājsistēmās izmantojiet EventLog API, lai sistēmas žurnālos pievienotu ierakstus. Zvaniet uz RegisterEventSource, lai iegūtu žurnāla deskriptoru norādītajā mašīnā. Izmantojiet šo rokturi, izsaucot funkciju ReportEvent, kas raksta žurnālā. Kad esat pabeidzis, zvaniet DeregisterEventSource, lai aizvērtu savienojumu un atbrīvotu RegisterEventSource piešķirtos resursus. Vienkāršākais piemērs darbam ar EventLog varētu būt: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Tāpat kā ar syslog, ir lietderīgi izsaukt arī RegisterEventSource sākumā un DeregisterEventSource pēc programmas izslēgšanas.