Программирование >>  Автоматически обновляемые приложения 

1 ... 100 101 102 [ 103 ] 104 105 106 ... 170


Листинг 9.36. Получение списка журналов событий на локальном компьютере

......................... ...1.......tv...:.. Ж., fii.ii,!.;;*..*......л.......<..........<..................................................................................................................

EventLog[] eventLogs;

Получим список журналов событий для локального компьютера eventLogs = EventLog.GetEventLogs(System.Environment.MachineName); this.Text = Число журналов событий: + eventLogs.Length;

for (int i = 0; i < eventLogs.Length; i++) listBoxl.Items.Add(eventLogs[i].Log);

Для получения списка журналов событий удаленного компьютера MyServer используйте строку

eventLogs = EventLog.GetEventLogs( MyServer );

Чтение и запись логов в журнал событий

Для чтения записей журнала событий используется свойство Entries класса EventLog. СВОЙСТВО Entries является коллекцией всех существующих запи-

Журналы событий

Журналы событий являются удобными средствами для записи информации о ходе работы программы или сервиса.

С помощью класса EventLog можно легко получить доступ к журналу событий Windows или настроить его под свои нужды. Вы можете считать данные из журнала событий, сделать там запись, создать или удалить источники событий и многое другое. Особый интерес для разработчика данный класс представляет по той причине, что позволяет работать как с локальными, так и с удаленными компьютерами.

Как найти доступные журналы событий на компьютере?

Начнем с простого. Для перечисления всех доступных журналов событий

нужно вызвать метод GetEventLogs КЛаССа EventLog. МетОД GetEventLogs

выполняет поиск всех журналов событий на заданном компьютере и создает массив объектов EventLog, содержащий список журналов. Его применение проиллюстрировано в листинге 9.36.



[ Листинг 9.37, Чтение записей из журнала событий

logType может быть Application, Security, System или собственный журнал событий string logType = System ;

EventLog ev = new EventLog(logType, System.Environment.MachineName); int LastLogToShow = ev.Entries.Count; if (LastLogToShow <= 0)

MessageBox.Show( Нет записей в журнале событий: + logType);

else {

Прочитать 2 последние записи в указанном журнале, int i;

for (i = ev.Entries.Count - 1; i >= LastLogToShow - 2; i -) {

EventLogEntry CurrentEntry = ev.Entries[i];

listBoxl.Items.Add( Event ID : + CurrentEntry.Instanceld); listBoxl.Items.Add( Entry Type : +

CurrentEntry.EntryType.ToString0); listBoxl.Items.Add( Message : + CurrentEntry.Message);

ev.Close ();

Примечание

Instanceld является НОВЫМ СВОЙСТВОМ, которое появилось в NET Framework 2.0 и заменило собой устаревшее свойство EventiD

Запись в журнал

Для записи в журнал событий используется метод writeEntry класса EventLog (ЛИСТИНГ 9.38). Необходимо помнить, ЧТО у вас должны быть права для записи.

сей в журнале. Вам нужно пройтись по всей коллекции и извлечь необходимые данные, как показано в листинге 9.37.



Создадим источник, если он не существует if (!EventLog.SourceExists( MySource )) {

EventLog.CreateEventSource( MySource , MyNewLog );

EventLog myLog = new EventLog(); myLog.Source = MySource ;

Делаем запись в журнал событий myLog.WriteEntry( Сделана запись. );

Очистка записей в журнале событий

Когда журнал событий заполнен записями, то запись новых событий прекращается или происходит замещение ранних записей. Вы можете очистить журнал событий, чтобы начать запись информации заново. Для этих целей существует метод Clear. Для выполнения операции, приведенной в листинге 9.39, вы должны иметь права администратора.

Листинг 9.39. Очистка записей в журнале событий

Создаем экземпляр EventLog и передаем имя журнала событий и имя машины EventLog ev = new EventLog( Security , System.Environment.MachineName); ev.Clear() ; ev.Close();

Создание собственного журнала событий

Как вы могли заметить из листинга 9.38, метод CreateEventSource МОЖНО

использовать для создания собственного журнала событий. Перед созданием нужно проверить существование журнала событий и только затем вызвать метод CreateEventSource. В противном случае ВЫ получите ошибку System.ArgumentException. В листинге 9.40 показано альтернативное использование метода CreateEventSource С КЛасСОМ EvenSourceCreationData.

Листинг 9.38. Запись в журнал событий



1 ... 100 101 102 [ 103 ] 104 105 106 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика