Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом пошаговом руководстве показано, как изменить фильтрацию журналов по умолчанию для My.Application.Log
объекта, чтобы контролировать, какие сведения передаются из Log
объекта прослушивателям и какие сведения записываются прослушивателями. Вы можете изменить поведение ведения журнала даже после создания приложения, так как сведения о конфигурации хранятся в файле конфигурации приложения.
Начало работы
Каждое сообщение, которое My.Application.Log
записывает, имеет связанный уровень важности, который механизмы фильтрации используют для управления журналом записей. В этом примере приложения используются My.Application.Log
методы для записи нескольких сообщений журнала с разными уровнями серьезности.
Создание примера приложения
Откройте новый проект приложения Windows Visual Basic.
Добавьте кнопку с именем Button1 в Form1.
Click В обработчике событий для Button1 добавьте следующий код:
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
Запустите приложение в отладчике.
Нажмите кнопку1.
Приложение записывает следующие сведения в отладочный файл выходных данных и журнала приложения.
DefaultSource Information: 0 : In Button1_Click
DefaultSource Error: 2 : Error in the application.
Закройте приложение.
Информация о том, как просмотреть окно отладки приложения, см. в окне вывода. Сведения о расположении файла журнала приложения см. в пошаговом руководстве. Определение места записи данных my.Application.Log.
Замечание
По умолчанию приложение очищает выходные данные файла журнала при закрытии приложения.
В приведенном выше примере второй вызов WriteEntry метода и вызов WriteException метода создает выходные данные журнала, а первые и последние вызовы
WriteEntry
метода не выполняются. Это связано с тем, что уровни серьёзностиWriteEntry
иWriteException
являются "Сведения" и "Ошибка", соответственно, которые оба допускаются фильтрацией журналов объектаMy.Application.Log
по умолчанию. Однако события с уровнями серьезности "Пуск" и "Стоп" не позволяют создавать выходные данные журнала.
Фильтрация для всех прослушивателей My.Application.Log
Объект My.Application.Log
использует SourceSwitch, названный DefaultSwitch
, для управления сообщениями, которые он передает от методов WriteEntry
и WriteException
слушателям журнала. Вы можете настроить DefaultSwitch
в файле конфигурации приложения, задав его значение одному из значений SourceLevels перечисления. По умолчанию его значение — Information.
В этой таблице показан уровень критичности, необходимый журналу для записи сообщения слушателям с учетом определенного параметра DefaultSwitch
.
Значение параметра DefaultSwitch | Серьезность сообщений, необходимая для выходных данных |
---|---|
Critical |
Critical |
Error |
Critical или Error |
Warning |
Critical , Error или Warning |
Information |
Critical , Error , Warning или Information |
Verbose |
Critical , Error , Warning , Information или Verbose |
ActivityTracing |
Start , Stop , Suspend , Resume или Transfer |
All |
Все сообщения разрешены. |
Off |
Все сообщения блокируются. |
Замечание
У методов WriteEntry
и WriteException
есть перегрузка, которая не указывает уровень серьезности. Неявный уровень серьезности для перегрузки WriteEntry
— «Информация», а неявный уровень серьезности для перегрузки WriteException
— «Ошибка».
В этой таблице описываются выходные данные журнала, показанные в предыдущем примере: с параметром по умолчанию DefaultSwitch
"Information", только второй вызов WriteEntry
метода и вызов WriteException
метода создает выходные данные журнала.
Ведение журнала только событий отслеживания активности
Щелкните правой кнопкой мыши app.config в обозревателе решений и выберите "Открыть".
-или-
Если нет файла app.config:
В меню "Проект" выберите "Добавить новый элемент".
В диалоговом окне "Добавить новый элемент" выберите файл конфигурации приложения.
Нажмите кнопку Добавить.
Найдите раздел
<switches>
, который находится в разделе<system.diagnostics>
, расположенном в разделе верхнего уровня<configuration>
.Найдите элемент, который добавляет
DefaultSwitch
в коллекцию коммутаторов. Он должен выглядеть примерно как этот элемент:<add name="DefaultSwitch" value="Information" />
Измените значение атрибута
value
на ActivityTracing.Содержимое файла app.config должно совпадать со следующим XML-кодом:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="ActivityTracing" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> </sharedListeners> </system.diagnostics> </configuration>
Запустите приложение в отладчике.
Нажмите кнопку1.
Приложение записывает следующие сведения в выходные данные отладки приложения и файл журнала:
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
Закройте приложение.
Измените значение атрибута
value
обратно на "Information".Замечание
Настройка
DefaultSwitch
переключателя управляет толькоMy.Application.Log
. Он не изменяет поведение .NET System.Diagnostics.Trace и System.Diagnostics.Debug классов.
Индивидуальная фильтрация для прослушивателей My.Application.Log
В предыдущем примере показано, как изменить фильтрацию для всех My.Application.Log
выходных данных. В этом примере показано, как применить фильтр к отдельному прослушивателю журналов. По умолчанию приложение имеет два прослушивателя, которые записывают данные отладки приложения и файл журнала.
Файл конфигурации управляет поведением прослушивателей журналов, позволяя каждому из них иметь фильтр, аналогичный параметру My.Application.Log
. Прослушиватель журналов выводит сообщение только в том случае, если серьезность сообщения разрешена как фильтром журнала DefaultSwitch
, так и прослушивателем журнала.
В этом примере показано, как настроить фильтрацию для нового прослушивателя отладки и добавить его в Log
объект. Прослушиватель отладки по умолчанию должен быть удален из Log
объекта, поэтому ясно, что сообщения отладки приходят из нового прослушивателя отладки.
Для регистрации только событий трассировки действий
Щелкните правой кнопкой мыши app.config в обозревателе решений и выберите "Открыть".
-или-
Если нет файла app.config:
В меню "Проект" выберите "Добавить новый элемент".
В диалоговом окне "Добавить новый элемент" выберите файл конфигурации приложения.
Нажмите кнопку Добавить.
Щелкните правой кнопкой мыши app.config в обозревателе решений. Нажмите кнопку "Открыть".
Найдите раздел
<listeners>
в разделе<source>
, находящийся в разделеname
с атрибутом<sources>
"DefaultSource". Этот<sources>
раздел находится под разделом<system.diagnostics>
в разделе верхнего уровня<configuration>
.Добавьте этот элемент в
<listeners>
раздел:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>
Найдите раздел
<sharedListeners>
в разделе<system.diagnostics>
, в разделе верхнего уровня<configuration>
.Добавьте этот элемент в этот
<sharedListeners>
раздел:<add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add>
Фильтр EventTypeFilter принимает одно из значений SourceLevels перечисления в качестве атрибута
initializeData
.Содержимое файла app.config должно совпадать со следующим XML-кодом:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add> </sharedListeners> </system.diagnostics> </configuration>
Запустите приложение в отладчике.
Нажмите кнопку1.
Приложение записывает следующие сведения в файл журнала приложения:
Default Information: 0 : In Button1_Click
Default Error: 2 : Error in the application.
Приложение записывает меньше информации в выходные данные отладки приложения из-за более строгой фильтрации.
Default Error 2 Error
Закройте приложение.
Дополнительные сведения об изменении параметров журнала после развертывания см. в статье "Работа с журналами приложений".
См. также
- Пошаговое руководство: определение места записи сведений в my.Application.Log
- Пошаговое руководство по изменению места записи информации в My.Application.Log
- Пошаговое руководство. Создание пользовательских прослушивателей журналов
- Как записывать сообщения лога
- Переключатели трассировки
- Сведения о ведении журнала из приложения