/// <summary> /// Получить класс реализующего работу с журналом событий Windows /// </summary> /// <returns>Класс реализующего работу с журналом событий Windows</returns> public static Journal CreateInstance() { try { if (journal == null) { journal = new Journal(); } return journal; } catch { return null; } }
/// <summary> /// Выполнить запись ошибки в жкрнал событий /// </summary> /// <param name="sender">Источник сообщения</param> /// <param name="args">Параметры сообщения</param> public static void WriteToLog(object sender, ErrorArgs args) { try { if (journal != null) { switch (args.ErrorType) { case ErrorType.Information: journal.Write(args.Message, EventLogEntryType.Information); break; case ErrorType.Warning: journal.Write(args.Message, EventLogEntryType.Warning); break; case ErrorType.NotFatal: journal.Write(args.Message, EventLogEntryType.Error); break; case ErrorType.Fatal: journal.Write(args.Message, EventLogEntryType.Error); if (OnExit != null) { OnExit(sender, new EventArgs()); } break; case ErrorType.Unknown: journal.Write(args.Message, EventLogEntryType.Error); break; case ErrorType.Default: journal.Write(args.Message, EventLogEntryType.Information); break; } } else { journal = Journal.CreateInstance(); if (journal != null) { string message = string.Format("{0}{1}{2}", "Не был создан экземпляр класса Journal", Constants.vbCrLf, "Сообщение приложения будет сохранено как Error!"); journal.Write(message, EventLogEntryType.Error); journal.Write(args.Message, EventLogEntryType.Error); } } } catch { // ... } }
/// <summary> /// инициализировать обработчик ошибок /// </summary> public static void InitializeErrorHandler() { if (journal == null) { journal = Journal.CreateInstance(); } }