Compartir a través de


Trabajar con registros de aplicación en Visual Basic

Actualización: noviembre 2007

Los objetos My.Applicaton.Log y My.Log facilitan la escritura de información de registro y seguimiento en archivos de registro.

Cómo se registran los mensajes

Primero, se comprueba la gravedad del mensaje con la propiedad Switch de la propiedad TraceSource del registro. De manera predeterminada, sólo los mensajes de gravedad "Información" y superior se pasan a los agentes de escucha de seguimiento, especificados en la colección TraceListener del registro. A continuación, cada agente de escucha compara la gravedad del mensaje con la propiedad Switch del agente de escucha. Si la gravedad del mensaje es bastante alta, el agente de escucha escribe el mensaje.

El diagrama siguiente muestra cómo un mensaje escrito en el método WriteEntry se pasa a los métodos WriteLine de los agentes de escucha de seguimiento del registro:

Puede cambiar el comportamiento de los agentes de escucha de registro y de seguimiento cambiando el archivo de configuración de la aplicación. El diagrama siguiente muestra la correspondencia entre las partes del registro y el archivo de configuración.

Dónde se registran los mensajes

Si el ensamblado no tiene un archivo de configuración, los objetos My.Application.Log y My.Log escriben en los resultados de depuración de la aplicación (a través de la clase DefaultTraceListener). Además, el objeto My.Application.Log escribe en el archivo de registro del ensamblado (a través de la clase FileLogTraceListener), mientras que el objeto My.Log escribe en el resultado de la página Web ASP.NET (a través de la clase WebPageTraceListener).

El resultado de depuración se puede ver en la ventana Resultados de Visual Studio cuando se ejecuta la aplicación en modo de depuración. Para abrir la ventana Resultados, haga clic en el elemento de menú Depurar, elija Windows y, a continuación, haga clic en Resultados. En la ventana Resultados, seleccione Depurar en el cuadro Mostrar resultados desde.

De manera predeterminada, My.Application.Log escribe el archivo de registro en la ruta de acceso a los datos de la aplicación del usuario. La ruta de acceso puede obtenerse de la propiedad FullLogFileName de DefaultFileLogWriter (Propiedad, My.Application.Log y My.Log). El formato de esa ruta de acceso es como sigue:

BasePath\CompanyName\ProductName\ProductVersion

Un valor típico para BasePath puede ser el siguiente.

C:\Documents and Settings\username\Datos de programa.

Los valores de CompanyName, ProductName y ProductVersion proceden de la información de ensamblado de la aplicación. El formato del nombre del archivo de registro es AssemblyName.log, donde AssemblyName es el nombre de archivo del ensamblado sin la extensión. Si se necesita más de un archivo de registro, como cuando el registro original no está disponible mientras la aplicación intenta escribir en él, el formato del nombre del archivo de registro es AssemblyName-iteration.log, donde iteration es un valor Integer positivo.

Puede reemplazar el comportamiento predeterminado agregando o cambiando los archivos de configuración del equipo y de la aplicación. Para obtener más información, vea Tutorial: Cambiar el lugar donde My.Application.Log escribe información.

Configurar la configuración del registro

El objeto Log tiene una implementación predeterminada que funciona sin archivo de configuración de aplicación, app.config. Para cambiar los valores predeterminados, debe agregar un archivo de configuración con los nuevos valores. Para obtener más información, vea Tutorial: Filtrar el resultado de My.Application.Log.

Las secciones de configuración de registro se encuentran en el nodo <system.diagnostics> del nodo <configuration> principal del archivo app.config. La información del registro se define en varios nodos:

  • Los agentes de escucha para el objeto Log se definen en el nodo de <sources> denominado DefaultSource.

  • El filtro de gravedad para el objeto Log se define en el nodo de <switches> denominado DefaultSwitch.

  • Los agentes de escucha de registro se definen en el nodo <sharedListeners>.

En el código siguiente se muestran ejemplos de nodos <sources>, <switches> y <sharedListeners>:

<configuration>
  <system.diagnostics>
    <sources>
      <source name="DefaultSource" switchName="DefaultSwitch">
        <listeners>
          <add name="FileLog"/>
        </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, processorArchitecture=MSIL"
        initializeData="FileLogWriter"
      />
    </sharedListeners>
  </system.diagnostics>
</configuration>

Cambiar la configuración del registro después de la implementación

Al desarrollar una aplicación, sus opciones de configuración se almacenan en el archivo app.config, como se muestra en los ejemplos anteriores. Después de implementar su aplicación, todavía puede configurar el registro editando el archivo de configuración. En una aplicación basada en Windows, el nombre de este archivo es applicationName.exe.config y debe encontrarse en la misma carpeta que el archivo ejecutable. Para una aplicación Web, se trata del archivo Web.config asociado al proyecto.

Cuando la aplicación ejecuta el código que crea una instancia de una clase por primera vez, comprueba el archivo de configuración para obtener información sobre el objeto. Para el objeto Log, esto ocurre la primera vez que se tiene acceso al objeto Log. El sistema sólo examina el archivo de configuración una vez para cualquier objeto específico: la primera vez que la aplicación crea el objeto. Por consiguiente, puede ser necesario reiniciar la aplicación para que los cambios surtan efecto.

En una aplicación implementada, el código de seguimiento se habilita volviendo a configurar los objetos modificadores antes de que se inicie la aplicación. Normalmente, esto implica activar y desactivar los modificadores cambiando los niveles de seguimiento y, a continuación, volver a iniciar la aplicación.

Consideraciones de seguridad

Tenga en cuenta lo siguiente al escribir los datos en el registro:

  • Evite incluir información sobre el usuario. Asegúrese de que su aplicación sólo escribe en el registro información autorizada. Por ejemplo, puede ser aceptable que el registro de aplicación contenga los nombres de usuario, pero no las contraseñas.

  • Haga que las ubicaciones del registro seguras Cualquier registro que contenga información potencialmente confidencial se debería almacenar en una ubicación segura.

  • Evite incluir información que podría conducir a error. En general, su aplicación debería validar todos los datos escritos por un usuario antes de utilizar esos datos. Esto incluye la escritura de datos en el registro de aplicación.

  • Evite las denegaciones de servicio. Si su aplicación escribe demasiada información en el registro, podría llenar el registro o dificultar la búsqueda de información importante.

Vea también

Conceptos

Registrar información de la aplicación

Referencia

My.Application.Log (Objeto)

My.Log (Objeto)