как вы контролируете уровень слушателя трассировки в файле конфигурации - PullRequest
20 голосов
/ 14 сентября 2010

Я пытаюсь изучить встроенные функции трассировки.Я не могу понять, как использовать конфигурацию для установки уровня (информация, предупреждение, ошибка), который записывается в мое прослушивание.

У меня есть app.config по умолчанию с ним.В моем коде я использую Trace.TraceInformation () и Trace.TraceError.

Все сообщения записываются в мой текстовый файл.Я хочу иметь возможность что-то изменить в app.config, чтобы он записывал информационные сообщения или просто сообщения об ошибках.

Module1.vb

Sub Main(ByVal args() As String)
    Dim index As Integer = 0
    For Each arg As String In args
        Trace.TraceInformation(String.Format("Sub Main(): arg({1}) = {0}", arg, index))
        Trace.Flush()

        If arg.Split("=").Count = 2 Then
            If String.Compare(arg.Split("=")(0), "mode", True) = 0 Then _Mode = arg.Split("=")(1)
        End If

        index += 1
    Next
End Sub

app.config

    <sources>
        <!-- This section defines the logging configuration for My.Application.Log -->
        <source name="DefaultSource">
            <listeners>
                <add name="FileLog"/>
                <!-- Uncomment the below section to write to the Application Event Log -->
                <!--<add name="EventLog"/>-->
            </listeners>
        </source>
    </sources>
    <switches>
        <add name="DefaultSwitch" value="1" />

    </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"/>
        <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
        <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="HealthSurvey Console"/> -->
    </sharedListeners>

</system.diagnostics>

Ответы [ 2 ]

29 голосов
/ 14 сентября 2010

Я не фанат отвечать на ваши собственные вопросы, но я также не люблю оставлять вопросы, не отмечая что-либо в качестве ответа. Это особенно верно, когда я нашел то, что искал.

Эта ссылка содержала необходимую мне информацию. Я подведу итог, потому что это довольно долго. В конфиге вы добавляете слушателя. Ключ, который мне был нужен, это использование <filter> для слушателя. С его помощью я могу развернуть свое приложение и затем изменить конфигурацию, чтобы контролировать текст, записанный в файл. Я мог бы добавить другого слушателя, у которого был другой фильтр, например, журнал событий.

В любом случае, ключ был <filter>. Атрибут initializeData устанавливается на текст из System.Diagnostics.SourceLevels enum.

  • Информация разрешает информацию, предупреждение и ошибку
  • Предупреждение разрешает предупреждение и ошибку
  • Ошибка допускает только ошибку

app.config

<system.diagnostics>
  <trace autoflush="false" indentsize="1">
    <listeners>
      <add name="textListener"
           type="System.Diagnostics.TextWriterTraceListener"
           traceOutputOptions="None"
           initializeData="C:\Projects\TraceLogOutput.log">
        <filter 
           type="System.Diagnostics.EventTypeFilter"
           initializeData="Information"/>
      </add>
    <remove name="Default" />
  </listeners>
</trace>

Module1.vb

Sub Main(ByVal args() As String)

    ' initializeData = Information only
    Trace.TraceInformation("Some Information message")
    Trace.Flush()

    ' initializeData = Information or Warning
    Trace.TraceWarning("Some Warning message")
    Trace.Flush()

    ' initializeData = Information, Warning or Error
    Trace.TraceError("Some Error message")
    Trace.Flush()

End Sub
3 голосов
/ 14 сентября 2010

Здесь вы найдете достойный обзор:

http://www.15seconds.com/issue/020910.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...