Поделиться через


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

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

Предпосылки

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

Вы можете просмотреть инструкции: запись сведений о событии в текстовый файл или практическое руководство: запись в журнал событий приложения.

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

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

    -или-

    Если нет файла app.config:

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

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

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

  2. Найдите раздел <listeners>, расположенный под разделом <source> с атрибутом name "DefaultSource", в разделе <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

См. также