Як робити логи

Одним з основних способів діагностики несправностей в роботі програмного забезпечення, який вже працює на комп`ютері користувача, є ведення журналів подій - логів. Зазвичай в них заносяться дані про запуски, а також важлива інформація про стан процесу і системному оточенні в разі критичного збою. робити логи можна як власними коштами, так і за допомогою спеціальних служб операційних систем.
Як робити логи

Вам знадобиться

  • - транслятор з мови програмування;
  • - можливо, пакет Windows Platform SDK;
  • - можливо, пакет розробника для glibc.

Інструкція

1
Проаналізуйте умови використання і складіть вимоги до розроблюваної підсистеми, компоненту або бібліотеці, яка буде робити логи. Дайте відповідь на питання про те, під керуванням якої платформи або платформ вона повинна функціонувати, яким буде її інтерфейс прикладного програмування.
2


Відповідно до виявлених особливостями функціонування та надаються API створіть заготовку підсистеми ведення логів. Розпочніть реалізації її функціоналу.
3
Найпростішим варіантом ведення логів є самостійне створення файлів в місці, визначеному конфігурацією додатки, з подальшим записом в них даних довільного формату. Застосовуйте для цього функції стандартної бібліотеки C (fopen, fclose, fwrite), об`єкти потоків стандартної бібліотеки C ++ (ofstream), класи використовуваного фреймворка (такі як CFile, QFile) або функції API операційної системи (CreateFile, WriteFile в Windows).
4



Реалізуйте запис логів за допомогою програмного інтерфейсу служби syslog в UNIX-сумісних операційних системах. Функції API syslog декларовані в заголовки syslog.h. Підключіть його в потрібному місці вихідного коду свого проекту.
5
Підключіться до сервісу syslog, використовуючи виклик функції openlog. Як параметри передайте їй покажчик на рядок, що містить ідентифікатор додатки або компонента, який буде здійснювати запис, прапори опцій і маску подій, що пропускаються в лог. Використовуйте виклики функцій syslog і vsyslog для додавання записів в журнал. Для відключення від сервісу викличте функцію closelog. Простий приклад коду для роботи з syslog може бути таким: openlog ("prefix", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1) -syslog (LOG_INFO, "% s", "Info") -syslog (LOG_NOTICE, "% s", "Notice") -closelog () - Підключатися до syslog має сенс при ініціалізації програми, а відключатися - при завершенні роботи.
6
В операційних системах Windows використовуйте API для роботи з сервісом EventLog щоб додавати записи в системні журнали. Проведіть виклик RegisterEventSource для отримання дескриптора логу на зазначеній машині. Використовуйте цей дескриптор при викликах функції ReportEvent, що здійснює запис в журнал. Після закінчення роботи викличте DeregisterEventSource щоб закрити з`єднання і звільнити ресурси, виділені RegisterEventSource. Найпростіший приклад роботи з EventLog може бути таким: HANDLE h = :: RegisterEventSource (NULL, "AnySource") - ASSERT (h! = NULL) - :: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL) - :: DeregisterEventSource (h) -Як і в разі з syslog, має сенс викликати RegisterEventSource при початку, а DeregisterEventSource - при виході з.


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 179
Увага, тільки СЬОГОДНІ!