2009-08-06 7 views
5

Tengo una excepción que necesito tragar (excepción durante el registro), sin embargo, no quiero que la información de excepción se pierda por completo a través de las brumas de tiempo, así que pensé que también podría hacerlo salida a depurar utilizandoEscribir para depurar en modo de lanzamiento

Debug.Write(ex.ToString()); 

de esta forma si se hace el apoyo necesario al menos puede utilizar DebugView sobre los problemas de la máquina que tiene.

Problema es que la clase Debug se elimina en el modo de lanzamiento: ¿cómo obtengo algo para depurar mientras estoy en modo de lanzamiento?

Respuesta

16

Utilice simplemente

Trace.Write(ex.ToString()); 

Esto hace lo mismo que Debug.Write(ex.ToString()); pero no se eliminará en modo de lanzamiento (siempre y cuando no eliminó la definición de la constante de TRACE en la configuración del proyecto)

+3

Recuerde rotar sus archivos de registro después de ~ 14 días para evitar llenar el disco duro. – JBRWilkinson

2

Quizás valga la pena buscar en algún marco de trabajo de registro. Prefiero Log4net donde tiene diferentes niveles de registro (DEPURAR, INFO, ADVERTENCIA, ERROR), diferentes registradores (puede poner un registrador para cada parte importante de la aplicación), y puede establecer diferentes niveles de depuración para diferentes registradores simplemente cambiando el archivo de configuración. Por lo tanto, si tiene un problema en algún área del código, puede establecer el nivel de DEPURACIÓN para ese (s) registrador (es) y cuando haya terminado puede recuperar el nivel original.

Esto araña la superficie, hay muchas más funciones, como enviar correos electrónicos por errores o iniciar sesión en la base de datos.

Cuestiones relacionadas