2012-04-13 23 views
7

Quiero que mi aplicación ASP.NET escriba líneas en un registro en alguna parte. ¿Proporciona IIS alguna forma incorporada para registrar mensajes de registro de ASP.NET? Estaba pensando que podría haber una manera de capturar llamadas a System.Diagnostics.Debug.WriteLine(), pero no puedo encontrar ninguna forma de hacerlo.escribir en el registro de IIS desde una aplicación ASP.NET

Respuesta

8

Para capturar Debug.Write y Debug.WriteLine, utilice DebugView from sysinternals.

http://technet.microsoft.com/en-us/sysinternals/bb896647

Por supuesto que tiene que compilar con Debug=true o de lo contrario las funciones no se llama en absoluto. Por lo tanto, el Debug.Write es una buena manera solo para realizar pruebas en tiempo real y depurar la aplicación y no una solución para mantener el registro de los errores en general. Para el caso en que quiera guardar los errores, creo que necesita usar una biblioteca de las otras sugerencias de usuario, o escribir directamente en el visor de eventos sus errores.

ps: Por alguna razón la versión 4.78 no funciona en mi Windows XP y cambiar de nuevo a 4,77

+0

Esto es perfecto, gracias. – McGarnagle

+0

¿Es esto compatible con Windows 10? – Milad

+0

@Milad Sí, lo es, como desarrollador lo uso muy a menudo. Si por alguna razón no ves algo ejecuta tu aplicación en modo administrador. No me refiero a la web, sino al resto – Aristos

0

que sé Debug.WriteLine escribe a la salida de depuración. Puedes verlo en tu depurador y guardarlo desde allí. No escribe un archivo de registro .. Debug Class

    son condicionales Attritubte
  1. del miembro de depuración Clase See this Answer for explanation

puede probar ELMAH,

es un centro de registro de errores de toda la aplicación que es completamente conectable. Se puede agregar dinámicamente a una aplicación web ASP.NET en ejecución, o incluso a todas las aplicaciones web ASP.NET en una máquina, sin necesidad de volver a compilar o volver a implementar.

o puede probar Log4Net

1

Lo que suelo hacer es utilizar un marco de registro 3 ª parte y configurar el marco a través de archivos de configuración (es decir, sin necesidad de volver a compilar).

Los marcos que he utilizado son:

  • log4net - que tiene una gran cantidad de los llamados "appenders" escribir en diferentes objetivos, como Windows registro de eventos o una base de datos o un archivo de registro.
  • NLlog - Un marco de registro que es un poco más fácil de usar que log4net.

Debe insertar las llamadas de función de registro apropiadas en su aplicación para activar realmente una entrada de registro que se está creando.

Dado que su título de pregunta indica que desea escribir en el mismo registro (archivo) que IIS; No tengo idea de cómo resolver este requisito (solo que no puedo imaginar una razón por la que haría esto)

6

Pruebe Response.AppendToLog(), esto escribe en el archivo de registro de IIS. Es bueno porque no requiere ningún software adicional.El único inconveniente es que su archivo de registro probablemente sea enorme. Lo uso principalmente para identificar contenido registrado en el registro de IIS. P.ej. Escriba el nombre de usuario cuando inicie sesión, y puede rastrear su sesión.

+1

Donde se almacenarán los registros cuando se utiliza 'Response.AppendToLog()' – Abhijeet

+0

La salida se agrega a la línea de registro en el archivo de registro IIS, pero está codificada en URL (en W3C los espacios de formato se reemplazan por '+', etc.). Míralo con cuidado :) – rustyx

Cuestiones relacionadas