Compartir a través de


Tutorial: Cambiar dónde My.Application.Log guarda la información (Visual Basic)

Puede usar los My.Application.Log objetos y My.Log para registrar información sobre los eventos que se producen en la aplicación. Este tutorial muestra cómo reemplazar la configuración predeterminada y hacer que el objeto Log escriba en otros agentes de escucha de registro.

Prerrequisitos

El objeto Log puede escribir información en varios agentes de escucha de registro. Debe determinar la configuración actual de los agentes de escucha de registro antes de cambiar las configuraciones. Para obtener más información, vea Tutorial: Determinar dónde escribe my.Application.Log información.

Es posible que desee revisar Cómo: Escribir información de eventos en un archivo de texto o Cómo: Escribir en un registro de eventos de aplicación.

Para agregar agentes de escucha

  1. Haga clic con el botón derecho en app.config en el Explorador de soluciones y elija Abrir.

    - o -

    Si no hay ningún archivo app.config:

    1. En el menú Proyecto , elija Agregar nuevo elemento.

    2. En el cuadro de diálogo Agregar nuevo elemento , seleccione Archivo de configuración de la aplicación.

    3. Haga clic en Agregar.

  2. Ubique la sección <listeners> dentro de la sección <source> que tiene el atributo name "DefaultSource", en la sección <sources>. La sección <sources> se encuentra en la sección <system.diagnostics>, en la sección superior de nivel <configuration>.

  3. Agregue estos elementos a esa <listeners> sección.

    <!-- 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. Quite la marca de comentario de los agentes de escucha de registro que desee que reciban mensajes de Log .

  5. Busque la sección <sharedListeners>, dentro de la sección <system.diagnostics>, dentro de la sección de nivel superior <configuration>.

  6. Agregue estos elementos a esa <sharedListeners> sección.

    <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. El contenido del archivo app.config debe ser similar al siguiente 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>
    

Para volver a configurar un agente de escucha

  1. Busque el elemento <add> del agente de escucha de la sección <sharedListeners> .

  2. El atributo type indica el nombre del tipo de oyente. Este tipo debe heredar de la TraceListener clase . Use el nombre de tipo con nombre seguro para asegurarse de que se use el tipo correcto. Para obtener más información, consulte la sección "Para hacer referencia a un tipo con nombre seguro" a continuación.

    Algunos tipos que puede usar son:

    Para obtener información sobre dónde otros tipos de escuchadores de registros escriben información, consulte la documentación de ese tipo.

  3. Cuando la aplicación crea el objeto log-listener, pasa el initializeData atributo como parámetro constructor. El significado del atributo initializeData depende del agente de escucha de seguimiento.

  4. Después de crear el agente de escucha de registro, la aplicación establece las propiedades del agente de escucha. Estas propiedades se definen mediante los demás atributos del <add> elemento . Para obtener más información sobre las propiedades de un agente de escucha determinado, consulte la documentación de este tipo de agente de escucha.

Para hacer referencia a un tipo con nombre seguro

  1. Para asegurarse de que se usa el tipo correcto para el agente de escucha de registro, asegúrese de usar el nombre completo del tipo y el nombre de ensamblado con nombre seguro. La sintaxis de un tipo con nombre fuerte es la siguiente:

    < nombre de tipo>, <nombre del ensamblaje>, <número de versión>, <cultura>, <nombre seguro>

  2. Este ejemplo de código muestra cómo determinar el nombre de tipo con nombre seguro para un tipo completo (en este caso, "System.Diagnostics.FileLogTraceListener").

    Public Sub DisplayStrongName()
        Dim t As Type = GetType(Logging.FileLogTraceListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    Esta es la salida, que se puede usar para hacer referencia de manera exclusiva a un tipo con nombre seguro, como en el procedimiento "Para agregar agentes de escucha" anterior.

    Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

Consulte también