Программирование в IIS


Компонент Event Log


Весь код взаимодействия с базой данных в листинге 3.7 расположен в секции Try блока Try .. Catch. Если удовлетворяется условие исключения, то выполняется блок Catch. Экземпляр класса System.Exception передается в качестве аргумента функции Catch и содержит информацию об ошибке, возникшей в блоке Try. В листинге 3.7 экземпляр класса System.Exception упорядочен в строку с помощью функции ToString. Функция ToString представляет собой общую функцию, используемую со многими классами, так как она унаследована из класса object. Строковое представление сообщения об ошибке передается функции LogMessage, которая записывает ошибку в журнал Application Log в программе Event Viewer (Просмотр событий), после чего ошибка передается приложению-потребителю.

Функция LogMessage реализована таким образом, что в журнал Application несущего сервера можно записать любую информацию. Журнал Application поддерживает способ идентификации типа записываемого сообщения. Функция LogMessage записывает сообщения типа error или information в зависимости от переданного значения параметра Error. Если значение параметра Error равняется "истине", LogMessage идентифицирует сообщение в журнале Application как error (ошибка); в противном случае сообщение определяется как information (сведения). В листинге 3.9 приведен код функции LogMessage.

/// <summary> /// logs messages to event log /// in: string that contains message of error /// or information that ought to be logged /// /// out: returns true if successful write, /// rethrows the error if failure occurs /// </summary> /// [WebMethod] public bool LogMessage(string Message, bool Error) { System.Diagnostics.EventLogEntryType MessageType;

try { //determine the type of message if (Error ) { MessageType = System.Diagnostics.EventLogEntryType.Error; } else { MessageType = System.Diagnostics.EventLogEntryType.Information; }

//make the write this.Log.WriteEntry(Message, MessageType); } catch (System.Exception eLogWrite) { //nothing else left to do except throw the raw error throw eLogWrite; } //we have success if we get to this line return true; }

Листинг 3.9. LogMessage Function of the Events Class

Экземпляр объекта Log является журналом приложения несущего сервера. Дизайнер компонентов содержит компонент, представляющий журнал несущего сервера в программе Event Viewer (Просмотр событий). Просто вставьте элемент управления в представлении Design (Дизайн) веб-службы, после чего настройте свойства журнала на том узле, куда будут передаваться сообщения. В данном случае подходит журнал Application (Приложение), так как он фиксирует информацию о приложении.




- Начало -  - Назад -  - Вперед -



Книжный магазин