Leo, matumizi mengi na matumizi ya mfumo mara kwa mara huhifadhi habari juu ya mchakato wa kazi zao, makosa na kutofaulu kwa magogo maalum inayoitwa magogo. Mifumo mingi ya kusudi la jumla hutoa huduma zinazokuruhusu kuandika magogo ukitumia kiolesura cha kawaida cha programu.
Muhimu
- - Mkusanyaji wa C;
- - Jukwaa la Windows SDK;
- - Tengeneza kifurushi cha glibc.
Maagizo
Hatua ya 1
Ongeza msaada wa kuandika magogo kwenye logi ya mfumo kutoka kwa programu yako iliyoundwa kufanya kazi chini ya mifumo ya uendeshaji wa familia ya Windows.
Tumia kazi ya RegisterEventSource API kusajili programu kama chanzo cha hafla, kazi ya ReportEvent kuongeza kuingia kwenye logi, na kazi ya DeregisterEventSource ili kufunga kipini kilichorudishwa na RegisterEventSource.
Ni jambo la busara kupigia RegisterEventSource wakati wa uanzishaji wa programu na uhifadhi maelezo yaliyorudishwa kila wakati, ili viingilio kwenye logi viweze kuwekwa kutoka sehemu tofauti kwenye programu. Mfano rahisi zaidi wa kuandika kwa logi ya Windows inaweza kuonekana kama hii:
HANDLE hLog = RegisterEventSource (NULL, "MyApplicationName");
ikiwa (hLog! = NULL)
{
ikiwa (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Nakala ya ujumbe / 0", NULL))
{
// tukio limefanikiwa kuingia
}
RejestaEventSource (hLog);
}
Maelezo zaidi juu ya semantiki ya kazi ya ReportEvent inaweza kupatikana katika MSDN kwa https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Kwa kuongeza, unahitaji kuweka data kadhaa juu ya moduli inayoweza kutekelezwa ya programu kwenye Usajili wa mfumo, na uongeze rasilimali katika muundo maalum kwa moduli yenyewe au maktaba yenye nguvu ya mtu wa tatu. Kwa habari zaidi juu ya funguo za usajili wa huduma ya kumbukumbu ya tukio, angalia
Hatua ya 2
Kuingia kwenye mifumo inayotumika ya Linux kwa kawaida inaweza kufanywa kwa kutumia syslog daemon. Huduma hii ina kiolesura cha kiwango cha maombi katika mfumo wa seti ya kazi, matamko ambayo yamewekwa kwenye faili ya kichwa cha syslog.h.
Tumia kazi ya kufungua ili kuunda unganisho kwa huduma ya syslog kutoka kwa programu au maktaba. Piga simu ya syslog au vsyslog kuweka ujumbe kwenye logi. Baada ya kumalizika kwa hafla za kurekodi au wakati programu imetoka, funga unganisho kwa huduma kwa kupiga kazi ya choo. Kwa kuongeza, unaweza kusanidi mipangilio ya kupuuza simu ambazo zinaongeza rekodi za hafla na kipaumbele maalum kwa kutumia kazi ya setlogmask. Mfano wa kuandika ujumbe kwa logi inaweza kuonekana kama hii:
kufungua ("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
syslog (LOG_NOTICE, "MyApplication imezinduliwa na PID% d", getuid ());
syslog (LOG_INFO, "Ujumbe wa habari!");
karibu ();
Kwa habari zaidi juu ya vigezo vya kazi za syslog API, angalia nyaraka za habari za libc.
Hatua ya 3
Andika magogo kwa faili za kiholela ukitumia utekelezaji wako mwenyewe wa mfumo wa mfumo wa kuendelea kwa hafla. Moja wapo ya suluhisho rahisi kwa shida hii ni kuunda kazi kadhaa katika wigo wa ulimwengu, moja ambayo inafungua faili iliyo na jina maalum katika hali ya habari ya kuongeza, ya pili inaifunga, na ya tatu inaongeza kamba ya ujumbe iliyopitishwa kwake kama kigezo cha faili hii. Kwa kweli, suluhisho hili linafanana na kiolesura cha programu ya syslog katika Linux.
Tumia kazi za fopen na fclose ya maktaba ya kawaida ya C kufungua na kufunga faili, mtawaliwa. Piga maandishi ili kuongeza habari kwenye faili. Unaweza pia kutumia kazi maalum za jukwaa (kwa mfano, CreateFile chini ya Windows) na mbinu za vitu vya mifumo iliyotumiwa ambayo inajumuisha utendaji wa kufanya kazi na faili.