Пошаговое руководство. Изменение места записи информации для My.Application.Log (Visual Basic)

Объекты My.Application.Log и My.Log можно использовать для записи в журнал информации о событиях, происходящих в приложении. В данном пошаговом руководстве показано, как переопределить параметры по умолчанию и заставить объект Log вести запись в другие прослушиватели журналов.

Обязательные компоненты

Объект Log может записывать информацию в несколько прослушивателей журналов. Перед изменением конфигурации необходимо определить текущую конфигурацию прослушивателей журналов. Дополнительные сведения см. в разделе Пошаговое руководство. Определение места записи информации для My.Application.Log (Visual Basic).

Возможно, будет полезно ознакомиться с разделами Практическое руководство. Запись сведений о событиях в текстовый файл (Visual Basic) или Практическое руководство. Запись в журнал событий приложения (Visual Basic).

Добавление прослушивателей

  1. Щелкните правой кнопкой мыши файл app.config в обозревателе решений и выберите команду Открыть.

    или

    Если файл app.config отсутствует:

    1. В меню Проект выберите пункт Добавить новый элемент.

    2. В диалоговом окне Добавление нового элемента выберите Файл конфигурации приложения.

    3. Нажмите кнопку Добавить.

  2. Найдите раздел <listeners>, который находится под разделом <source> с атрибутом "DefaultSource" name в разделе <sources>. Раздел <sources> находится в разделе <system.diagnostics>, на верхнем уровне раздела <configuration>.

  3. Добавьте эти элементы в данный раздел <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" /> -->
    
  4. Удалите комментарии для прослушивателей журналов, которые должны получать сообщения Log.

  5. Найдите раздел <sharedListeners> в разделе <system.diagnostics> на верхнем уровне раздела <configuration>.

  6. Добавьте эти элементы в данный раздел <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" />
    
  7. Содержимое файла 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>
    

Перенастройка прослушивателя

  1. Найдите элемент <add> прослушивателя из раздела <sharedListeners>.

  2. Атрибут type содержит имя типа слушателя. Этот тип должен наследоваться от класса TraceListener. Используйте строгое имя типа, чтобы гарантировать, что используется верный тип. Дополнительные сведения см. в разделе "Создание ссылки на строго именованный тип", приведенном ниже.

    Вот некоторые типы, которые можно использовать:

    Сведения о том, куда записывают информацию другие типы прослушивателей журналов, приведены в документации по этим типам.

  3. Когда приложение создает объект прослушивателя журнала, он передает атрибут initializeData в качестве параметра конструктора. Значение атрибута initializeData зависит от прослушивателя трассировки.

  4. После создания прослушивателя журнала приложение задает его свойства. Эти свойства определяются другими атрибутами в элементе <add>. Дополнительные сведения о свойствах конкретного прослушивателя см. в документации на соответствующий тип прослушивателя.

Создание ссылки на строго именованный тип

  1. Чтобы гарантировать, что для прослушивателя журнала используется правильный тип, убедитесь, что используется полное имя типа и строгое имя сборки. Синтаксис строго именованного типа выглядит следующим образом:

    <имя типа >, < имя сборки >, < номер версии >, < язык и региональные параметры >, < строгое имя >

  2. В данном пошаговом руководстве показано, как определить строгое имя для типа с полным именем "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

См. также

Задачи

Практическое руководство. Запись сведений о событиях в текстовый файл (Visual Basic)

Практическое руководство. Запись в журнал событий приложения (Visual Basic)

Ссылки

Microsoft.VisualBasic.Logging.Log

TraceListener

Microsoft.VisualBasic.Logging.FileLogTraceListener

System.Diagnostics.EventLogTraceListener