Ինչպես գրել տեղեկամատյաններ

Բովանդակություն:

Ինչպես գրել տեղեկամատյաններ
Ինչպես գրել տեղեկամատյաններ

Video: Ինչպես գրել տեղեկամատյաններ

Video: Ինչպես գրել տեղեկամատյաններ
Video: КАК ПРОХОДИТ СЛУЖБА В АРМИИ | ОЖИДАНИЕ И РЕАЛЬНОСТЬ 2024, Դեկտեմբեր
Anonim

Այսօր հավելվածների և համակարգային ծրագրերի մեծ մասը պարբերաբար տեղեկատվություն է խնայում իրենց աշխատանքի ընթացքի, տեղեկամատյաններ կոչվող հատուկ տեղեկամատյանների սխալների և խափանումների մասին: Ընդհանուր նշանակության գործառնական համակարգերի մեծամասնությունը մատուցում է ծառայություններ, որոնք թույլ են տալիս գրել տեղեկամատյաններ ՝ օգտագործելով ստանդարտ ծրագրավորման միջերես:

Ինչպես գրել տեղեկամատյաններ
Ինչպես գրել տեղեկամատյաններ

Անհրաժեշտ է

  • - C կազմող;
  • - Windows Platform SDK;
  • - Մշակել փաթեթ glibc- ի համար:

Հրահանգներ

Քայլ 1

Ձեր ընտանիքի Windows- ի գործառնական համակարգերի տակ աշխատելու համար ձեր դիմումից համակարգի տեղեկամատյաններին ավելացրեք օժանդակ գրառումներ գրելու համար:

Օգտագործեք RegisterEventSource API գործառույթը ՝ հայտը որպես իրադարձության աղբյուր գրանցելու համար, ReportEvent գործառույթը ՝ գրանցամատյանում գրառում ավելացնելու համար, և DeregisterEventSource գործառույթը ՝ RegisterEventSource- ի կողմից վերադարձված բռնակը փակելու համար:

Դիմումի նախաստորագրման ժամանակ իմաստ ունի զանգահարել RegisterEventSource- ին և անընդհատ պահպանել վերադարձված նկարագրիչը, որպեսզի տեղեկամատյանում գրառումները տեղադրվեն ծրագրի տարբեր վայրերից: Windows գրքում գրելու ամենապարզ օրինակը կարող է նման լինել.

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

եթե (hLog! = NULL)

{

եթե (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, «Հաղորդագրության տեքստ / 0», NULL))

{

// իրադարձությունը հաջողությամբ մուտքագրվեց

}

DeregisterEventSource (hLog);

}

ReportEvent գործառույթի իմաստաբանության մասին ավելի մանրամասն կարելի է գտնել MSDN- ում ՝ https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx: Ի լրումն, դուք պետք է որոշ տվյալներ տեղադրեք ծրագրի գործադիր մոդուլի վերաբերյալ համակարգի գրանցամատյանում և հատուկ ձևաչափով ռեսուրսներ ավելացնեք բուն մոդուլին կամ երրորդ կողմի դինամիկ գրադարանին: Իրադարձությունների գրանցման ծառայության գրանցամատյանի բանալիների վերաբերյալ լրացուցիչ տեղեկությունների համար տե՛ս

Քայլ 2

Linux- ի համատեղելի գործառնական համակարգեր մուտք գործելը սովորաբար կարող է իրականացվել syslog daemon- ի միջոցով: Այս ծառայությունն ունի դիմումի մակարդակի ինտերֆեյս `գործառույթների ամբողջության տեսքով, որի հայտարարագրերը տեղադրվում են syslog.h վերնագրի ֆայլում:

Օգտագործեք openlog գործառույթը ՝ հավելվածից կամ գրադարանից syslog ծառայության հետ կապ ստեղծելու համար: Messagesանգահարեք syslog կամ vsyslog գործառույթներին ՝ հաղորդագրությունները տեղեկամատյանում տեղադրելու համար: Իրադարձությունների ձայնագրման ավարտից կամ դիմումի ավարտից հետո փակեք կապը ծառայության հետ `զանգահարելով փակման գործառույթ: Բացի այդ, դուք կարող եք կարգաբերել պարամետրերը ՝ անտեսելու համար զանգերը, որոնք իրադարձությունների գրառումներ են ավելացնում որոշակի առաջնահերթությամբ ՝ օգտագործելով setlogmask գործառույթը: Գրքում հաղորդագրություններ գրելու օրինակներից մեկը կարող է նման լինել.

բաց օրագիր ("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, «MyApplication- ը մեկնարկում է PID% d- ով», getuid ());

syslog (LOG_INFO, «Տեղեկատվական հաղորդագրություն»);

closelog ();

Syslog API գործառույթների պարամետրերի վերաբերյալ լրացուցիչ տեղեկություններ ստանալու համար տե՛ս libc info փաստաթղթերը:

Քայլ 3

Գրեք տեղեկամատյանները կամայական ֆայլերին `օգտագործելով իրադարձության համառության ենթահամակարգի ձեր սեփական ներդրումը: Այս խնդրի ամենապարզ լուծումներից մեկը գլոբալ շրջանակներում մի քանի գործառույթների ստեղծումն է, որոնցից մեկը լրացնում է տեղեկատվության ռեժիմում հատուկ անունով ֆայլ, երկրորդը փակում է այն, իսկ երրորդը ավելացնում է իրեն փոխանցված հաղորդագրություն այս ֆայլի պարամետր: Հայեցակարգային տեսանկյունից այս լուծումը հիշեցնում է Linux- ում syslog ծրագրավորման միջերեսը:

Օգտագործեք C ստանդարտ գրադարանի fopen և fclose գործառույթները, համապատասխանաբար, ֆայլ բացելու և փակելու համար: Callանգահարեք fwrite- ին `ֆայլին տեղեկություններ ավելացնելու համար: Կարող եք նաև օգտագործել պլատֆորմի համար հատուկ գործառույթներ (օրինակ, CreatFile- ը Windows- ի տակ) և օգտագործված շրջանակների օբյեկտների մեթոդներ, որոնք ամփոփում են ֆայլերի հետ աշխատելու ֆունկցիոնալությունը:

Խորհուրդ ենք տալիս: