Пошаговое руководство. Изменение места записи информации для My.Application.Log
Обновлен: Ноябрь 2007
Объекты My.Application.Log и My.Log можно использовать для записи в журнал информации о событиях, происходящих в приложении. В данном пошаговм руководстве показано, как переопределить параметры по умолчанию и заставить объект Log вести запись в другие прослушиватели журналов.
Обязательные компоненты
Объект Log может записывать информацию в несколько прослушивателей журналов. Перед изменением конфигурации необходимо определить текущую конфигурацию прослушивателей журналов. Дополнительные сведения см. в разделе Пошаговое руководство. Определение места записи информации для My.Application.Log.
Возможно, будет полезно ознакомиться с разделами Практическое руководство. Запись сведений о событиях в текстовый файл или Практическое руководство. Запись в журнал событий приложения.
Добавление прослушивателей
Щелкните правой кнопкой мыши файл app.config в Обозревателе решений и выберите команду Открыть.
или
Если файл app.config отсутствует:
В меню Проект выберите пункт Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Файл конфигурации приложения.
Нажмите кнопку Добавить.
Найдите раздел <listeners>, который находится под разделом <source> с атрибутом "DefaultSource" name в разделе <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" delimiter=";;;" 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" delimiter=";;;" 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
См. также
Задачи
Практическое руководство. Запись сведений о событиях в текстовый файл
Практическое руководство. Запись в журнал событий приложения