Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los objetos My.Application.Log
y My.Log
facilitan la escritura de información de registro y seguimiento a 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 suficientemente alta, el oyente 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:
Puede cambiar el comportamiento del registro y de los agentes de escucha de seguimiento cambiando el archivo de configuración de la aplicación. En el diagrama siguiente se muestra la correspondencia entre las partes del registro y el archivo de configuración.
Dónde se registran los mensajes
Si el ensamblaje 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 My.Application.Log
objeto escribe en el archivo de registro del ensamblado (a través de la FileLogTraceListener clase ), mientras que el My.Log
objeto escribe en la salida de la página web de ASP.NET (a través de la WebPageTraceListener clase ).
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, a continuación, 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 del directorio de datos de la aplicación del usuario. Puede obtener la ruta de acceso de la propiedad FullLogFileName del objeto DefaultFileLogWriter . El formato de esa ruta de acceso es el siguiente:
BasePath
\CompanyName
\ProductName
\ProductVersion
Un valor típico para BasePath
es el siguiente.
C:\Documents and Settings\username
\Application Data
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 por ejemplo cuando el registro original no está disponible y la aplicación intenta escribir en él, el nombre del archivo de registro es AssemblyName-iteración.log, donde iteration
es un número positivo.
Puede invalidar 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 Guía paso a paso: Cambiar dónde My.Application.Log escribe la información.
Configurar el registro
El Log
objeto tiene una implementación predeterminada que funciona sin un archivo de configuración de 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 logs se encuentran en el nodo <system.diagnostics>
dentro 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
Log
objeto se define en el<switches>
nodo denominado DefaultSwitch.Los agentes de escucha de registro se definen en el nodo
<sharedListeners>
.
En el siguiente código, 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 valores de configuración se almacenan en el archivo app.config, como se muestra en los ejemplos anteriores. Después de implementar la aplicación, 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.configy debe residir en la misma carpeta que el archivo ejecutable. Para una aplicación web, este 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. Para el Log
objeto , esto sucede la primera vez que se accede al Log
objeto. El sistema examina el archivo de configuración solo una vez para cualquier objeto determinado: la primera vez que la aplicación crea el objeto. Por lo tanto, es posible que tenga que reiniciar la aplicación para que los cambios surtan efecto.
En una aplicación implementada, habilitas el código de seguimiento mediante la reconfiguración de los objetos de conmutación antes de que se inicie la aplicación. Normalmente, esto implica activar y desactivar los objetos switch o cambiar los niveles de seguimiento y, a continuación, reiniciar la aplicación.
Consideraciones de seguridad
Tenga en cuenta lo siguiente al escribir datos en el registro:
Evite la pérdida de información del usuario. Asegúrese de que la aplicación escribe solo información aprobada en el registro. Por ejemplo, puede ser aceptable que el registro de aplicación contenga nombres de usuario, pero no contraseñas de usuario.
Proteja las ubicaciones de registro. Cualquier registro que contenga información potencialmente 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 usar esos datos. Esto incluye escribir datos en el registro de la aplicación.
Evite la denegación de servicio. Si la aplicación escribe demasiada información en el registro, podría rellenar el registro o dificultar la búsqueda de información importante.