- - компілятор мови C;
- - Windows Platform SDK;
- - Develop-пакет для glibc.
Використовуйте API функцію RegisterEventSource для реєстрації додатки в якості джерела подій, функцію ReportEvent для додавання запису в журнал і функцію DeregisterEventSource для закриття дескриптора, повернутого RegisterEventSource.
Виклик RegisterEventSource має сенс виробляти в процесі ініціалізації програми і зберігати повернутий їй дескриптор весь час роботи з тим, щоб з різних місць програми можна було виробляти розміщення записів в балці. Найпростіший приклад запису в лог Windows може виглядати так:
HANDLE hLog = RegisterEventSource (NULL, "MyApplicationName") -
if (hLog! = NULL)
{
if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL,
1, 0, "Message text 0", NULL))
{
// Подія успішно поміщено в лог
}
DeregisterEventSource (hLog) -
}
Більш докладно про семантику роботи функції ReportEvent можна дізнатися в MSDN за посиланням https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Крім того, необхідно помістити деякі дані про виконуваному модулі додатки до реєстру, а в сам модуль або сторонню динамічну бібліотеку додати ресурси в певному форматі. Детальніше про ключі реєстру для сервісу event log можна дізнатися на сторінці https://msdn.microsoft.com/en-us/library/windows/desktop/aa363661%28v=vs.85%29.aspx.
Використовуйте функцію openlog для створення підключення до сервісу syslog з програми або бібліотеки. Викликайте функції syslog або vsyslog для розміщення повідомлень в балці. Після закінчення запису подій або при завершенні роботи програми закрийте з'єднання з сервісом, викликавши функцію closelog. Крім того, можна налаштувати параметри ігнорування викликів, що додають записи про події з певним пріоритетом за допомогою функції setlogmask. Приклад запису повідомлень в лог може виглядати так:
openlog ("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1) -
syslog (LOG_NOTICE, "MyApplication is launched with PID% d", getuid ()) -
syslog (LOG_INFO, "Information message!") -
closelog () -
Більш докладно з інформацією про параметри функцій прикладного програмного інтерфейсу syslog можна ознайомитися в info-документації по libc.
Використовуйте функції fopen і fclose стандартної бібліотеки C для відкриття і закриття файлу відповідно. Викликайте fwrite для додавання інформації в файл. Також можна застосовувати платформо-спеціфічекіе функції (наприклад, CreateFile під Windows) і методи об'єктів використовуваних фреймворків, інкапсулюючих функціонал роботи з файлами.