2011-09-20 6 views
5

Tengo una aplicación de consola C# que estoy implementando unas 20 veces (con diferentes configuraciones) y ejecutándola. Como se puede imaginar es difícil de mantener y observar lo que está sucediendo con 20 aplicaciones en ejecución (eventualmente voy a implementarlas como servicios de Windows), ¿hay algo que pueda mostrar el resultado de estas en un solo lugar fácilmente?Visualización de la salida de las aplicaciones de la consola mutilple .Net en un solo lugar

He pensado en los archivos de registro, pero estos podrían agrandarse bastante rápido, y son muchos los archivos que abrir y mirar, solo quiero tener algún resultado para verificar que todo siga funcionando como se esperaba.

Editar:

Voy a ser errores de grabación y arranque/parada de la información a la base de datos. De lo que estoy hablando aquí es de la información de procesamiento general, que no es tan relevante para volver a visitar, pero es interesante de ver mientras se ejecuta en la aplicación de la consola.

+0

Incluso si todos se conectan al mismo lugar? ¿Base de datos? – Widor

+0

No estoy demasiado preocupado acerca de dónde registran información gereral (estoy de acuerdo con los errores), más preocupado con echar un vistazo a cómo se desarrolla cada uno. Si están llevando a cabo decenas de miles de acciones al día, no necesariamente quiero escribir todo eso en la base de datos (o en un archivo) ya que no volveré a necesitar verlo nunca más. – finoutlook

+2

Eche un vistazo a log4net y los appenders que ofrece. Es realmente fácil una vez que lo configuras. Y con Upd, los datagramas desaparecen en el ciberespacio si no hay nadie escuchando. –

Respuesta

4

He utilizado con éxito log4net y su configurable UdpAppender. A continuación, puede apuntar todos los UdpAppenders a una sola máquina donde puede recibir los mensajes Udp con Log4View, por ejemplo.

Dado que es configurable, puede usarlo cuando instala y depura la producción y luego aumenta el nivel de registro para que solo muestre mensajes de ERROR en lugar de mensajes DEBUG o INFO.

http://logging.apache.org/log4net/

http://www.log4view.com

http://logging.apache.org/log4net/release/config-examples.html

2

Quizás porque vengo de un fondo pesado DB, pero ¿qué tal el uso de SQL Server con una mesa de registro para realizar un seguimiento de la actividad a través de diferentes aplicaciones?

Los DB se preparan para la concurrencia y manejan fácilmente múltiples aplicaciones insertando datos en la misma tabla de registro, también se obtienen las opciones de cortar y cortar los datos tanto como se desee, aprovechando la agregación ya existente funciones en un entorno de base de datos.

Si va por esa ruta, probablemente deba considerar mantener esa tabla (período de retención de registro, etc.).

También podría comenzar a utilizar herramientas como Splunk para recopilar todos los datos de registro e iniciar las correspondientes fallas de la aplicación en fallas del sistema o del entorno (si se están siguiendo).

0

Pondría en segundo lugar a Mikael Östberg y recomendaría el uso de una biblioteca de registradores (log4net, o nlog). Hay muchas opciones donde puede enviar mensajes a una base de datos o colas, etc ... Dado que puede activar o desactivar el inicio de sesión fácilmente, incluso puede mantenerlo en sus servicios como un gancho de monitor en caso de que ocurra algo extraño

+0

Lo que estoy buscando es una forma de controlar esos registros si quiero verificar lo que está sucediendo actualmente. Incluso suponiendo que vaya a Log4net, ¿cómo visualizaré la salida, tendré que seleccionar veinte veces desde un menú desplegable para ver cada aplicación, o hay algo que pueda cotejarlas todas en una página. – finoutlook

Cuestiones relacionadas