ASP - Перечисление модулей ведения журнала
Обзор
Неумелое использование нескольких модулей ведения журнала может вызвать ряд трудностей. Этот пример иллюстрирует некоторые приемы, которые можно использовать при создании собственных средств ведения журнала.
Этот пример выполняет две различные функции. Он запускается без аргументов командной строки и выводит список всех модулей ведения журнала, для которых на данном сервере есть записи. Но если дан путь ADsPath, например, IIS://LocalHost/W3SVC/3, будет предпринята попытка определить, какой модуль ведения журнала считается активным в данном узле метабазы, и выдать сведения о нем.
Программирование
Для перечисления доступных модулей ведения журнала вызывается метод GetObject, обращающийся к узлу IIS://LocalHost/Logging метабазы. Затем в цикле For ... Each перечисляются модули, найденные в указанном узле.
Процесс сбора сведений о модуле ведения журнала определенного сервера немного сложнее. Так как единственным свойством на уровне сервера, показывающим, какой модуль в данный момент используется сервером, является свойство LogPluginClsId, его значение требуется сравнивать со всеми модулями, перечисленными на уровне //LocalHost, пока не будет найдено совпадение.
Метод GetObject используется для обращения к списку модулей ведения журнала, перечисленных на уровне //LocalHost. Значение CLSID модуля ведения журнала сравнивается со значением CLSID каждого модуля ведения журнала в этом главном списке, пока не будет найдено совпадение. При обнаружении совпадения сценарий выдает все доступные сведения об этом модуле ведения журнала; если совпадений CLSID не обнаружено, работа сценария прерывается с выводом сообщения об ошибке.
Расположение
Этот сценарий расположен в каталоге служб Интернета: ...\iissamples\sdk\admin\logenum.vbs.