Jak Pisać Logi

Spisu treści:

Jak Pisać Logi
Jak Pisać Logi

Wideo: Jak Pisać Logi

Wideo: Jak Pisać Logi
Wideo: 02 Formułowanie tezy w pracy z języka polskiego 2024, Może
Anonim

Obecnie większość aplikacji i aplikacji systemowych okresowo zapisuje informacje o procesie swojej pracy, błędach i awariach w specjalnych logach zwanych logami. Większość systemów operacyjnych ogólnego przeznaczenia udostępnia usługi umożliwiające pisanie dzienników przy użyciu standardowego interfejsu programistycznego.

Jak pisać logi
Jak pisać logi

Niezbędny

  • - kompilator C;
  • - Zestaw SDK platformy Windows;
  • - Opracuj pakiet dla glibc.

Instrukcje

Krok 1

Dodaj obsługę zapisywania dzienników do dziennika systemowego z aplikacji zaprojektowanej do pracy w systemach operacyjnych z rodziny Windows.

Użyj funkcji API RegisterEventSource, aby zarejestrować aplikację jako źródło zdarzenia, funkcji ReportEvent, aby dodać wpis do dziennika, oraz funkcji DeregisterEventSource, aby zamknąć dojście zwrócone przez RegisterEventSource.

Sensowne jest wywoływanie RegisterEventSource podczas inicjalizacji aplikacji i zapisywanie zwróconego deskryptora cały czas, aby wpisy w logu mogły być umieszczane z różnych miejsc w programie. Najprostszy przykład zapisu do dziennika Windows może wyglądać tak:

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

jeśli (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Tekst wiadomości / 0", NULL))

{

// zdarzenie zostało pomyślnie zarejestrowane

}

Wyrejestruj Źródło Zdarzeń (hLog);

}

Więcej szczegółów na temat semantyki funkcji ReportEvent można znaleźć w witrynie MSDN pod adresem https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx. Ponadto należy umieścić w rejestrze systemowym pewne dane dotyczące modułu wykonywalnego aplikacji oraz dodać zasoby w określonym formacie do samego modułu lub do biblioteki dynamicznej innej firmy. Aby uzyskać więcej informacji na temat kluczy rejestru dla usługi dziennika zdarzeń, zobacz

Krok 2

Logowanie w systemach operacyjnych zgodnych z systemem Linux można zwykle przeprowadzić za pomocą demona syslog. Usługa ta posiada interfejs na poziomie aplikacji w postaci zestawu funkcji, których deklaracje są umieszczane w pliku nagłówkowym syslog.h.

Użyj funkcji openlog, aby utworzyć połączenie z usługą syslog z aplikacji lub biblioteki. Wywołaj funkcje syslog lub vsyslog, aby umieścić komunikaty w dzienniku. Po zakończeniu rejestrowania zdarzeń lub po zamknięciu aplikacji zamknij połączenie z usługą wywołując funkcję closelog. Ponadto możesz skonfigurować ustawienia tak, aby ignorować połączenia, które dodają rekordy zdarzeń o określonym priorytecie za pomocą funkcji setlogmask. Przykład zapisywania wiadomości do dziennika może wyglądać tak:

openlog („Moja aplikacja”, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "Moja aplikacja jest uruchamiana z PID% d", getuid ());

syslog (LOG_INFO, "Komunikat informacyjny!");

closelog ();

Więcej informacji na temat parametrów funkcji syslog API można znaleźć w dokumentacji libc info.

Krok 3

Zapisuj dzienniki do dowolnych plików, korzystając z własnej implementacji podsystemu utrwalania zdarzeń. Jednym z najprostszych rozwiązań tego problemu jest stworzenie kilku funkcji w zasięgu globalnym, z których jedna otwiera plik o określonej nazwie w trybie dodawania informacji, druga go zamyka, a trzecia dodaje ciąg wiadomości przekazany do niej jako parametr do tego pliku. Pod względem koncepcyjnym to rozwiązanie przypomina interfejs programistyczny syslog w systemie Linux.

Użyj funkcji fopen i fclose z biblioteki standardowej C, aby odpowiednio otworzyć i zamknąć plik. Zadzwoń do fwrite, aby dodać informacje do pliku. Możesz także użyć funkcji specyficznych dla platformy (na przykład CreateFile pod Windows) i metod obiektów użytych frameworków, które hermetyzują funkcjonalność pracy z plikami.

Zalecana: