Comparteix a través de


Trabajar con registros de aplicaciones en Visual Basic

Los objetos My.Application.Log y My.Log facilitan la escritura de información de registro y seguimiento en los registros.

Cómo se registran los mensajes

En primer lugar, se comprueba la gravedad del mensaje con la propiedad Switch de la propiedad TraceSource del registro. De forma predeterminada, solo 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.

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

Diagram that shows My log call.

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

Diagram that shows My log configuration.

Dónde se registran los mensajes

Si el ensamblado no tiene ningún archivo de configuración, los objetos My.Application.Log y My.Log escriben en la salida 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 la salida de la página web ASP.NET (a través de la clase WebPageTraceListener ).

La salida de depuración se puede ver en la ventana Salida de Visual Studio al ejecutar la aplicación en modo de depuración. Para abrir la ventana Salida , haga clic en el elemento de menú Depurar , seleccione Windows, y, después, haga clic en Salida. En la ventana Salida , seleccione Depurar desde el cuadro Mostrar resultados desde .

De forma predeterminada, My.Application.Log escribe el archivo de registro en la ruta de acceso de los datos de aplicaciones del usuario. Puede obtener la ruta de acceso de la propiedad FullLogFileName del objeto DefaultFileLogWriter . El formato de la ruta de acceso es el siguiente:

BasePath\CompanyName\ProductName\ProductVersion

A continuación se indica un valor típico de BasePath .

C:\Documents and Settings\username\Application Data

Los valores de CompanyName, ProductNamey ProductVersion proceden de la información de ensamblado de la aplicación. El formato del nombre de archivo de registro es nombreDeEnsamblado.log, donde nombreDeEnsamblado es el nombre de archivo del ensamblado sin la extensión. Si se necesita más de un archivo de registro, por ejemplo, si el registro original no está disponible cuando la aplicación intenta escribir en el registro, el formato del nombre de archivo de registro es nombreDeEnsamblado-iteration.log, donde iteration es un Integer.

Para invalidar el comportamiento predeterminado, puede agregar o cambiar los archivos de configuración del equipo y de la aplicación. Para obtener más información, consulta Tutorial: Cambiar el lugar donde My.Application.Log escribe información.

Configurar el registro

El objeto Log tiene una implementación predeterminada que funciona sin un archivo de configuración de la aplicación, app.config. Para cambiar los valores predeterminados, debe agregar un archivo de configuración con la nueva configuración. Para obtener más información, consulta Walkthrough: Filtering My.Application.Log Output.

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

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

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

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

En el código siguiente, se muestran ejemplos de los 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 de registro después de la implementación

Al desarrollar una aplicación, su configuración se almacena en el archivo app.config, tal como se muestra en los ejemplos anteriores. Después de implementar su aplicación, puede configurar el registro mediante la edición del archivo de configuración. En una aplicación basada en Windows, el nombre de este archivo es nombreDeAplicación.exe.config y debe encontrarse en la misma carpeta que el archivo ejecutable. En una aplicación web, es el 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. En el caso del objeto Log , estos sucede la primera vez que se accede al objeto Log . El sistema examina el archivo de configuración una sola vez par cada objeto concreto (la primera vez que la aplicación crea el objeto). Por lo tanto, es posible que deba 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 objetos modificadores. Para ello, se deben cambiar los niveles de seguimiento y, luego, reiniciar la aplicación.

Consideraciones sobre la seguridad

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

  • Evite la pérdida de información de usuario. Asegúrese de que la aplicación solo escribe información aprobada en el registro. Por ejemplo, es posible que se acepte que el registro de la aplicación contenga nombres de usuario, pero no contraseñas de usuario.

  • Proteja las ubicaciones del registro. Cualquier registro que contenga información que pueda ser confidencial debe almacenarse en una ubicación segura.

  • Evite información engañosa. En general, la aplicación debe validar todos los datos introducidos por un usuario antes de usarlos. Se incluye la escritura de datos en el registro de la aplicación.

  • Evite la denegación 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