2010-01-29 8 views
5

Pregunta simple: ver título. Estoy usando .NET 3.5.¿Hay un marco de registro incorporado en .NET?

Elaboración: Estoy construyendo un complemento que se cargará en una aplicación de terceros en tiempo de ejecución. La aplicación principal usa log4net como su marco de registro. Sin embargo, no expone el registrador de raíz, por lo que no podemos iniciar sesión. (He planteado este problema con los desarrolladores de nivel superior y lo arreglarán para una versión futura, así que mientras tanto tengo que encontrar algo más)

Otra limitación del sistema es que cuando recibe la notificación que debería cargar un complemento que no existe en el sistema local, desplegará ese complemento desde un servidor al que está conectado (si existe en el servidor), pero solo puede desplegar el ensamblado donde vive el complemento . Esto significa que no se pueden implementar ensambles externos y no .config o cualquier otro archivo con el complemento.

Eso me deja con solo ensambles .NET incorporados y todo en el ensamblaje de mis complementos. Sin embargo, no quiero reinventar la rueda construyéndome Aún Otro Marco de Registro, así que me gustaría saber cuál sería el mejor enfoque para este problema.

Prefiero iniciar sesión en un archivo y me gustaría evitar descargar cosas en el registro de eventos de Windows.

+0

"no expone el registrador de raíz" - ¿no puede simplemente agregar una referencia a log4net.dll y acceder al registrador de raíz directamente usted mismo? – Joe

+1

He intentado crear mi propio registrador de raíz e intento usar las aplicaciones principales sin ningún resultado. Log4net solo permite un registrador de raíz por aplicación y la aplicación principal ya está creando uno. Si el suyo estuviera expuesto en algún lugar, podría usarlo, pero ese no es el caso. No estoy seguro de si es un registrador de raíz por aplicación o uno por Dominio de aplicación.Si es uno por AppDomain y podría intentar crear mi propio AppDomain desde mi complemento y luego crear mi propio registrador de raíz. – alimbada

Respuesta

10

dos opciones principales son por ahí:

Los Trace y Debug clases que forman parte del marco .NET (dentro del espacio de nombres System.Diagnostics) son probablemente la mejor opción. Estos proporcionan las herramientas para hacer un registro liviano a una variedad de oyentes configurables en tiempo de ejecución, que pueden escribir en un archivo, registro de eventos y en muchos otros lugares.

Parece que no puede agregar clases adicionales a su aplicación, pero si puede, entonces recomendaría Microsoft Enterprise Library, que aunque es un marco de registro externo, es proporcionado por Microsoft y tiende a funcionar bien. con el código .NET

+0

Estaba pensando en la Biblioteca Enterprise originalmente también, pero después de confirmar mis sospechas de que se trataba de una biblioteca externa dejé de seguir esa línea de pensamiento. Trataré de rastrear y depurar por ahora. Aclamaciones. :) – alimbada

-1

+1 para rastrear y depurar. Puede pedirle a los desarrolladores iniciales que implementen un TraceListener que envíe sus mensajes a Log4Net para que todo termine en un solo archivo.

También pueden considerar Gibraltar para ver y analizar los datos de log4net. De hecho, si los desarrolladores iniciales integraran Gibraltar, fusionaría los datos log4net y Trace juntos de forma automática.

ACTUALIZACIÓN: ¡Hemos hecho nuestro Visualizador de registros GRATIS!

Lea nuestro blog para más acerca de por qué our best log viewer is now FREE

O visite nuestro sitio Web para learn more o simplemente get the bits now!

Cuestiones relacionadas