2009-08-17 9 views
6

No estoy seguro de si esto es posible de la manera que estoy imaginando o no, así que espero que alguien pueda ayudarme a entender esto.¿Cómo adjunto un agente de escucha de seguimiento a un proceso en ejecución?

Estoy queriendo inyectar un TraceListener en un proceso en ejecución, más o menos. En realidad, no me importa cómo me conecto al proceso, pero el objetivo final es escuchar el resultado de seguimiento del proceso en ejecución y descargarlo en una ventana de la consola.

Me puedo conectar al proceso bien, y puedo escribir un TraceListener bien ... donde me estoy despegando es la parte del medio. Alguien tiene alguna pista si esto se puede hacer? Si es así, ¿puedes darme un empujón en la dirección correcta porque no puedo ver el bosque por los árboles aquí?

Tal vez estoy tratando de abordar esto de la manera incorrecta?

+1

Aquí está el enlace a [log4net doc para OutputDebugString appender] (http://logging.apache.org/log4net/release/config-examples.html#OutputDebugStringAppender). Llegué aquí desde la búsqueda de google "log4net OutputDebugString" pero aún no hay un enlace directo en la página – yzorg

Respuesta

3

No creo que esto sea práctico. Sería fácil crear un oyente en tiempo de ejecución, pero eso es algo que la aplicación tiene que hacer, implica agregar algo a una lista.

Es posible que desee asegurarse de que el oyente por defecto no se quita y utilizar un OutputDebug tool a escuchar.

+0

Interesante, ¿y eso solo se relaciona con el Oyente predeterminado? Eso me ahorrará una inmensa cantidad de tiempo. Pensaba que tendría que escribir algo yo mismo, pero si alguien ya hizo el trabajo por mí, no tiene sentido reinventar la rueda. – BenAlabaster

+0

Sí, el escucha predeterminado utiliza la API OutputDebugString (WIN32). Es lo que aparece en el depurador de Visual Studio. –

1

Cuando quiero ver el resultado de depuración, que utiliza una combinación de log4net y DebugView. Puedo hacer que log4net supervise un archivo de configuración para permitirme cambiar el nivel de registro de log4net en tiempo de ejecución, o puedo usar filtros en DebugView.

+0

Si uso log4net, puedo usar un tracelistener con la misma facilidad. El propósito es intentar adjuntar a una aplicación ya en ejecución sin quitarla. – BenAlabaster

+0

No sé tanto sobre los detectores de rastreo, pero log4net puede supervisar un archivo de configuración para permitirle ajustar el nivel de registro sin eliminar la aplicación. DebugView solo monitorea todos los procesos que escriben a la llamada a la API OutputDebugString en Windows. No te apegas a un proceso específico, pero puedes filtrar. –

+0

interesante, gracias, investigaré eso – BenAlabaster

2

¿DbgView de Sysinternals sería suficiente para sus necesidades? Le mostrará los mensajes de rastreo de todos los procesos en ejecución sin tener que configurar un detector de rastreo antes de comenzar el proceso.

Cuestiones relacionadas