¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Seguimiento e instrumentación de aplicaciones
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Seguimiento e instrumentación de aplicaciones

El seguimiento es una manera de supervisar la ejecución de la aplicación mientras se está ejecutando. Puede agregar instrumentación de seguimiento y de depuración a la aplicación de .NET Framework cuando la desarrolle, y puede usar dicha instrumentación mientras desarrolla la aplicación y después de implementarla. Puede usar las clases System.Diagnostics.Trace, System.Diagnostics.Debug y System.Diagnostics.TraceSource para registrar información sobre errores y ejecución de la aplicación en registros, archivos de texto u otros dispositivos para su análisis posterior.

El término instrumentación hace referencia a la capacidad de supervisar o medir el nivel de rendimiento de un producto y diagnosticar errores. En programación, esto significa la capacidad de una aplicación para incorporar:

  • Seguimiento de código: recibir mensajes informativos sobre la ejecución de una aplicación en tiempo de ejecución.

  • Depuración: localizar y corregir errores de programación en una aplicación en desarrollo. Para obtener más información, consulte el artículo sobre depuración.

  • Contadores de rendimiento: componentes que permiten supervisar el rendimiento de la aplicación. Para obtener más información, consulte el artículo sobre Contadores de rendimiento de .NET Framework.

  • Registros de eventos: componentes que le permiten recibir y realizar el seguimiento de eventos importantes en la ejecución de la aplicación. Para obtener más información, vea la clase EventLog.

La instrumentación de la aplicación mediante la colocación de instrucciones de seguimiento en puntos estratégicos del código resulta especialmente útil con aplicaciones distribuidas. Mediante el uso de instrucciones de seguimiento, puede instrumentar una aplicación no solo para mostrar información cuando existe algún problema, sino también para supervisar el rendimiento de la aplicación.

La clase TraceSource proporciona características mejoradas de seguimiento y puede usarse en lugar de los métodos estáticos de las clases anteriores de seguimiento Trace y Debug. Las ya conocidas clases Trace y Debug se siguen usando ampliamente, pero la clase TraceSource se recomienda para nuevos comandos de seguimiento, como TraceEvent y TraceData.

Las clases Trace y Debug son idénticas, salvo que los procedimientos y funciones de la clase Trace se compilan de forma predeterminada en las versiones de lanzamiento, a diferencia de los de la clase Debug.

Las clases Trace y Debug proporcionan los medios para supervisar y examinar el rendimiento de la aplicación durante el desarrollo o después de la implementación. Por ejemplo, puede usar la clase Trace para realizar un seguimiento de determinados tipos de acciones en una aplicación implementada a medida que se producen (por ejemplo, la creación de nuevas conexiones de base de datos) y, por tanto, pueden supervisar la eficiencia de la aplicación.

Durante el desarrollo, puede usar los métodos de salida de la clase Debug para mostrar mensajes en la ventana de salida del entorno de desarrollo integrado (IDE) de Visual Studio. Por ejemplo:

System.Diagnostics.Trace.WriteLine("Hello World!");
System.Diagnostics.Debug.WriteLine("Hello World!");

Cada uno de estos ejemplos mostrará "Hello World!" en la ventana de salida cuando la aplicación se ejecute en el depurador.

Esto le permite depurar las aplicaciones y optimizar su rendimiento en función de su comportamiento en el entorno de prueba. Puede depurar la aplicación en la compilación de depuración con el atributo condicional Debug activado para así recibir toda la salida de la depuración. Cuando la aplicación está lista para el lanzamiento, puede compilar la versión de lanzamiento sin activar el atributo condicional Debug, con lo que el compilador no incluirá el código de depuración en el ejecutable final. Para obtener más información, consulte el artículo sobre Cómo: Realizar compilación condicional con Trace y Debug. Para obtener más información sobre diferentes configuraciones de compilación para su aplicación, consulte el artículo sobre Compilar aplicaciones en Visual Studio.

Asimismo, puede usar métodos de la clase Trace para seguir la ejecución de código en una aplicación instalada. Si coloca Modificadores de seguimiento en el código, puede controlar si se realiza el seguimiento y su alcance. Esto le permite supervisar el estado de la aplicación en un entorno de producción. Este aspecto es especialmente importante en aplicaciones empresariales que usen varios componentes que se ejecutan en varios equipos. El control sobre el uso de los modificadores después de la implementación se realiza a través del archivo de configuración. Para obtener más información, consulte el artículo sobre Cómo: Crear, inicializar y configurar modificadores de seguimiento.

Al desarrollar una aplicación para la que se va a usar seguimiento, normalmente se incluyen en el código de la aplicación tanto mensajes de seguimiento como mensajes de depuración. Cuando la aplicación esté lista para implementarse, se puede compilar la versión de lanzamiento sin necesidad de activar el atributo condicional Debug. Sin embargo, se puede activar el atributo condicional Trace para que el compilador incluya el código de seguimiento en el ejecutable. Para obtener más información, consulte el artículo sobre Cómo: Realizar compilación condicional con Trace y Debug.

zs6s4h68.collapse_all(es-es,VS.110).gifFases del seguimiento de código

El seguimiento de código consta de tres fases:

  1. Instrumentación: agregar código de seguimiento a la aplicación.

  2. Seguimiento: el código de seguimiento escribe información en el destino especificado.

  3. Análisis: se evalúa la información de seguimiento para identificar y comprender los problemas de la aplicación.

Durante el desarrollo, todos los métodos de salida debug y trace{i> <i}escriben información en la ventana de salida de Visual Studio de forma predeterminada. En una aplicación implementada, los métodos escriben información de seguimiento en los destinos que se especifiquen. Para obtener más información sobre cómo especificar un destino de salida para el seguimiento o la depuración, vea el artículo sobre Agentes de escucha de seguimiento.

A continuación se ofrece una visión general de los pasos principales que intervienen en el uso del seguimiento para analizar y corregir posibles problemas en aplicaciones implementadas. Para obtener más información sobre cómo realizar estos pasos, vea el vínculo apropiado.

Para usar el seguimiento en una aplicación

  1. Considere qué salida de seguimiento desea recibir in situ después de haber implementado la aplicación.

  2. Cree un conjunto de conmutadores. Para obtener más información, consulte el artículo sobre cómo configurar modificadores de seguimiento.

  3. Agregue las instrucciones de seguimiento al código de aplicación.

  4. Determine dónde desea que aparezca la salida del seguimiento y agregue los agentes de escucha apropiados. Para obtener más información, consulte el artículo sobre creación e inicialización de agentes de escucha de seguimiento.

  5. Pruebe y depure la aplicación y el código de seguimiento que contiene.

  6. Compile la aplicación en código ejecutable mediante uno de los siguientes procedimientos:

    • Use el menú Compilación junto con la página Depurar del cuadro de diálogo Páginas de propiedades del Explorador de soluciones. Use este procedimiento si compila en Visual Studio.

      o bien

    • Use las directivas de compilador Trace y Debug para el método de línea de comandos de compilación. Para obtener más información, consulte el artículo sobre compilación condicional con Trace y Debug. Use este procedimiento si compila desde la línea de comandos.

  7. Si se produce un problema durante el tiempo de ejecución, active el modificador de seguimiento adecuado. Para obtener más información, consulte el artículo sobre configuración de modificadores de seguimiento.

    El código de seguimiento escribe mensajes de seguimiento en un destino especificado, por ejemplo, una pantalla, un archivo de texto o un registro de eventos. El tipo de agente de escucha incluido en la colección Trace.Listeners determina el destino.

  8. Analice los mensajes de seguimiento para identificar y comprender los problemas de la aplicación.

Con las aplicaciones distribuidas no resulta fácil probar la aplicación de la manera en que se usará. No hay muchos equipos de desarrollo que tengan la capacidad de probar todas las posibles combinaciones de sistemas operativos o exploradores web (incluidas todas las opciones de idiomas de localización), o de simular el elevado número de usuarios que tendrán acceso simultáneo a la aplicación. En estas circunstancias, no es posible probar cómo responderá una aplicación distribuida ante grandes volúmenes, diferentes instalaciones y comportamientos únicos de usuario final. Además, muchas de las partes de una aplicación distribuida no disponen de ninguna interfaz de usuario con la que poder interactuar directamente o ver la actividad de esas partes.

Sin embargo, es posible compensar esto permitiendo a las aplicaciones distribuidas describir determinados eventos de interés para los administradores del sistema, especialmente aquello que no funciona bien, mediante la instrumentación de la aplicación —es decir, mediante la colocación de instrucciones de seguimiento en puntos estratégicos del código—. A continuación, si ocurre algo inesperado en tiempo de ejecución (por ejemplo, un tiempo de respuesta excesivamente lento), podrá determinar la causa probable.

Con las instrucciones de seguimiento puede evitar la difícil tarea de examinar el código fuente original, modificarlo, volver a compilar e intentar reproducir el error de tiempo de ejecución dentro del entorno de depuración. Recuerde que puede instrumentar una aplicación no solo para mostrar errores, sino también para supervisar el rendimiento.

Debe tener especial cuidado al colocar las instrucciones de seguimiento para su uso durante el tiempo de ejecución. Considere qué información de seguimiento puede ser necesaria en una aplicación implementada de modo que estén bien cubiertos todos los escenarios de seguimiento probables. Puesto que las diferencias entre aplicaciones que usan el seguimiento son enormes, no existen directrices generales para la colocación estratégica del seguimiento. Para obtener más información acerca de cómo colocar instrucciones de seguimiento, vea el artículo sobre Cómo: Agregar instrucciones de seguimiento al código de una aplicación.

La salida del seguimiento se recopila mediante objetos denominados agentes de escucha. Un agente de escucha es un objeto que recibe la salida de seguimiento y la escribe en un dispositivo de salida (normalmente un archivo de texto, registro o ventana). Cuando se crea un agente de escucha, normalmente se agrega a la colección Trace.Listeners, lo que le permite recibir toda la salida del seguimiento.

La información de seguimiento siempre se escribe al menos en el destino de salida predeterminado de Trace, que es DefaultTraceListener. Si por algún motivo se ha eliminado DefaultTraceListener sin agregar otros agentes de escucha a la colección Listeners, no recibirá ningún mensaje de seguimiento. Para obtener más información, vea el artículo sobre Agentes de escucha de seguimiento.

En la tabla siguiente se enumeran los seis miembros Debug y los métodos Trace que escriben información de seguimiento.

Método

Salida

Assert

Es el texto especificado o, si no se especifica ninguno, la pila de llamadas. La salida solo se escribe si la condición especificada como argumento en la instrucción Assert es false.

Fail

Es el texto especificado o, si no se especifica ninguno, la pila de llamadas.

Write

Es el texto especificado.

WriteIf

Es el texto especificado si se satisface la condición especificada como argumento en la instrucción WriteIf.

WriteLine

Es el texto especificado y un retorno de carro.

WriteLineIf

Es el texto especificado y un retorno de carro si se satisface la condición especificada como argumento en la instrucción WriteLineIf.

Todos los agentes de escucha de la colección Listeners reciben los mensajes descritos en la tabla anterior, pero las acciones emprendidas pueden variar según el tipo de agente de escucha que recibe el mensaje. Por ejemplo, DefaultTraceListener muestra un cuadro de diálogo de aserción cuando recibe una notificación de Fail o de Assert con errores, pero un TextWriterTraceListener simplemente escribe el resultado en su secuencia.

Si implementa su propio agente de escucha podrá obtener resultados personalizados. Un agente de escucha de seguimiento personalizado puede, por ejemplo, mostrar los mensajes en un cuadro de mensaje o conectarse a una base de datos para agregar mensajes a una tabla. Todos los agentes de escucha personalizados deben admitir los seis métodos mencionados anteriormente. Para obtener más información sobre cómo crear agentes de escucha definidos por el desarrollador, consulte TraceListener en la documentación de .NET Framework.

Nota para Visual Basic Nota para Visual Basic

En Visual Basic 2005, los métodos Debug.Write, Debug.WriteIf, Debug.WriteLine y Debug.WriteLineIf han reemplazado al método Debug.Print que estaba disponible en versiones anteriores de Visual Basic.

Los métodos escribir y WriteLine siempre escriben el texto que especifique. Assert, WriteIf y WriteLineIf requieren un argumento booleano que determina si deben escribir el texto especificado; solo escriben el texto si la expresión es true (para WriteIf y WriteLineIf), o false (para Assert). El método Fail siempre escribe el texto especificado. Para obtener más información, consulte Cómo: Agregar instrucciones de seguimiento al código de una aplicación y la documentación de .NET Framework.

Si no deshabilita el seguimiento y la depuración antes de implementar una aplicación ASP.NET, la aplicación puede revelar información sobre sí misma que podría ser aprovechada por un programa malintencionado. Para obtener más información, consulte los artículos sobre Cómo: Realizar compilación condicional con Trace y Debug, Compilar aplicaciones en Visual Studio y Cómo: Crear, inicializar y configurar modificadores de seguimiento. La depuración también es configurable a través de Internet Information Services (IIS).

Mostrar:
© 2015 Microsoft