Пошаговое руководство. Изменение места записи информации для My.Application.Log (Visual Basic)
Объекты My.Application.Log
и My.Log
можно использовать для записи в журнал информации о событиях, происходящих в приложении. В этом пошаговом руководстве показано, как переопределить параметры по умолчанию и настроить объект Log
на запись в другие прослушиватели журналов.
Необходимые компоненты
Объект Log
может записывать информацию в несколько прослушивателей журналов. Перед изменением конфигурации необходимо определить текущую конфигурацию прослушивателей журналов. Дополнительные сведения см. в разделе Пошаговое руководство. Определение места записи информации для My.Application.Log.
Также см. разделы Практическое руководство. Запись сведений о событиях в текстовый файл и Практическое руководство. Запись в журнал событий приложения.
Добавление прослушивателей
Щелкните правой кнопкой мыши файл app.config в обозревателе решений и выберите команду Открыть.
- или -
Если файл app.config отсутствует, выполните указанные ниже действия.
В меню Проект выберите пункт Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите элемент Файл конфигурации приложения.
Нажмите кнопку Добавить.
Найдите раздел
<listeners>
в разделе<source>
с атрибутомname
, равным DefaultSource, в разделе<sources>
. Раздел<sources>
находится в разделе<system.diagnostics>
в разделе<configuration>
верхнего уровня.Добавьте в этот раздел
<listeners>
следующие элементы.<!-- Uncomment to connect the application file log. --> <!-- <add name="FileLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="EventLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="Delimited" /> --> <!-- Uncomment to connect the XML log. --> <!-- <add name="XmlWriter" /> --> <!-- Uncomment to connect the console log. --> <!-- <add name="Console" /> -->
Раскомментируйте прослушиватели журналов, которые должны получать сообщения
Log
.Найдите раздел
<sharedListeners>
в разделе<system.diagnostics>
в разделе<configuration>
верхнего уровня.Добавьте в этот раздел
<sharedListeners>
следующие элементы.<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" initializeData="FileLogWriter" /> <add name="EventLog" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="sample application"/> <add name="Delimited" type="System.Diagnostics.DelimitedListTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleDelimitedFile.txt" traceOutputOptions="DateTime" /> <add name="XmlWriter" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleLogFile.xml" /> <add name="Console" type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="true" />
Содержимое файла 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"/> <!-- Uncomment to connect the application file log. --> <!-- <add name="FileLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="EventLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="Delimited" /> --> <!-- Uncomment to connect the XML log. --> <!-- <add name="XmlWriter" /> --> <!-- Uncomment to connect the console log. --> <!-- <add name="Console" /> --> </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" initializeData="FileLogWriter" /> <add name="EventLog" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="sample application"/> <add name="Delimited" type="System.Diagnostics.DelimitedListTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleDelimitedFile.txt" traceOutputOptions="DateTime" /> <add name="XmlWriter" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleLogFile.xml" /> <add name="Console" type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="true" /> </sharedListeners> </system.diagnostics> </configuration>
Перенастройка прослушивателя
Найдите элемент
<add>
прослушивателя из раздела<sharedListeners>
.Атрибут
type
содержит имя типа прослушивателя. Этот тип должен наследоваться от класса TraceListener . Используйте строгое имя типа, чтобы гарантировать, что используется верный тип. Дополнительные сведения см. в разделе "Создание ссылки на строго именованный тип" ниже.Вот некоторые типы, которые можно использовать:
прослушиватель Microsoft.VisualBasic.Logging.FileLogTraceListener , ведущий запись в журнал файлов;
прослушиватель System.Diagnostics.EventLogTraceListener , записывающий информацию в журнал событий компьютера, заданный параметром
initializeData
;прослушиватели System.Diagnostics.DelimitedListTraceListener и System.Diagnostics.XmlWriterTraceListener , ведущие запись в файл, указанный в параметре
initializeData
;прослушиватель System.Diagnostics.ConsoleTraceListener , ведущий запись в консоль командной строки.
Сведения о том, куда записывают информацию другие типы прослушивателей журналов, приведены в документации по этим типам.
Когда приложение создает объект прослушивателя журнала, оно передает атрибут
initializeData
в качестве параметра конструктора. Значение атрибутаinitializeData
зависит от прослушивателя трассировки.После создания прослушивателя журнала приложение задает его свойства. Эти свойства определяются другими атрибутами в элементе
<add>
. Дополнительные сведения о свойствах конкретного прослушивателя см. в документации к соответствующему типу прослушивателя.
Создание ссылки на строго именованный тип
Чтобы гарантировать, что для прослушивателя журнала используется правильный тип, убедитесь в том, что используется полное имя типа и строгое имя сборки. Синтаксис строго именованного типа выглядит следующим образом:
<имя типа, имя>> сборки, <<номер версии, язык> и региональные> параметры, <<строгое имя>
В этом примере кода показано, как определить строгое имя для типа с полным именем System.Diagnostics.FileLogTraceListener.
Public Sub DisplayStrongName() Dim t As Type = GetType(Logging.FileLogTraceListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
Это выходные данные, и они могут использоваться для уникальной ссылки на строго именованный тип, как показано выше в процедуре "Добавление прослушивателей".
Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a