Introdução à instrumentação e rastreamento
O termo instrumentação se refere a uma capacidade de monitorar ou medir o nível de desempenho do produto e para diagnosticar erros. Em programação, isso significa a capacidade de um aplicativo de incorporar:
Rastreamento de código -recebendo mensagens informativas sobre a execução de um aplicativo em tempo de execução.
Depuração - rastrear e corrigir erros de programação em um aplicativo em desenvolvimento. Para obter mais informações, consulte depuração.
Contadores de desempenho -componentes que permitem controlar o desempenho do seu aplicativo. Para obter mais informações, consulte Introduction to Monitoring Performance Thresholds.
Logs de eventos -componentes que permitem receber e controlar os principais eventos na execução do seu aplicativo. Para mais informações, consulte a classe EventLog.
O rastreamento e Debug classes fornecem os meios para monitorar e examinar o desempenho do aplicativo desenvolvimento durante ou após a implantação. Por exemplo, você pode usar o rastreamento classe para controlar tipos específicos de ações em um aplicativo implantado à medida que eles ocorrem (por exemplo, a criação de novas conexões de banco de dados) e, portanto, podem monitorar a eficiência do aplicativo.
Rastreamento de código e depuração
Durante o desenvolvimento, você pode usar os métodos de saída da Debug classe para exibir mensagens na janela Saída do ambiente de desenvolvimento integrado (IDE) do Visual Studio. Por exemplo:
Trace.WriteLine("Hello World!")
Debug.WriteLine("Hello World!")
System.Diagnostics.Trace.WriteLine("Hello World!");
System.Diagnostics.Debug.WriteLine("Hello World!");
System.Diagnostics.Trace.WriteLine("Hello World!");
System.Diagnostics.Debug.WriteLine("Hello World!");
Cada um desses exemplos exibirá "Hello World!". na janela de saída quando o aplicativo é executado no depurador.
Isso permite a você depurar seus aplicativos e otimizar seu desempenho com base no seu comportamento em seu ambiente de teste. Você pode depurar seu aplicativo em sua compilação de depuração com o Debug atributo conditional ativado para que você receba todas as saídas de depuração. Quando seu aplicativo está pronto para ser liberada, você pode compilar a versão de compilação sem ligar o Debug atributo condicional, para que o compilador não irá incluir a depuração de código no executável final. Para obter mais informações, consulte Como: Compilar condicionalmente com rastreamento e depuração. Para obter mais informações sobre configurações de compilação diferente para seu aplicativo, consulte Criando no Visual Studio.
Você também pode rastrear a execução de código em um aplicativo instalado, usando os métodos de rastreamento classe. Colocando Opções de rastreamento. no seu código, você pode controlar se o rastreamento ocorre e abrangente de como ele Salomão Isso permite monitorar o status do seu aplicativo em um ambiente de produção. Isso é especialmente importante em um aplicativo de negócios que usa vários componentes em execução em vários computadores. Você pode controlar como os switches são usados após a implantação por meio do arquivo de configuração. Para obter mais informações, consulte Como: Configurar opções de rastreamento.
Quando você estiver desenvolvendo um aplicativo para o qual você pretende usar o rastreamento, geralmente incluem tanto o rastreamento e depuração de mensagens no código do aplicativo. Quando estiver pronto para implantar o aplicativo, você pode compilar a versão de compilação sem ligar o Debug atributo condicional. No entanto, você pode ativar o rastreamento de atributo condicional para que o compilador inclui o código de rastreamento no executável. Para obter mais informações, consulte Como: Compilar condicionalmente com rastreamento e depuração.
Fases de rastreamento de código
Há três fases de rastreamento de código:
Instrumentação — você adicionar o código de rastreamento para seu aplicativo.
Rastreamento — o código de rastreamento grava as informações de destino especificado.
Análise — você avaliar as informações de rastreamento para identificar e compreender os problemas no aplicativo.
Durante o desenvolvimento, depuração e rastreamento de todas as saída métodos gravar informações para a janela de saída na Visual Studio por padrão. Em um aplicativo implantado, os métodos gravar informações de rastreamento para os destinos que você especificar. Para obter mais informações sobre como especificar um destino de saída de rastreamento ou depuração, consulte Ouvintes de rastreamento..
Instrumentação de rastreamento e aplicativos distribuídos
Quando você cria um aplicativo distribuído, talvez seja difícil de testar o aplicativo da maneira em que será usado. Poucas equipes de desenvolvimento tem a capacidade de testar todas as combinações possíveis dos sistemas operacionais ou navegadores da Web (incluindo todas as opções de idioma localizadas) ou simular um alto número de usuários que acessarão o aplicativo ao mesmo tempo. Sob essas circunstâncias, você não pode testar como um aplicativo distribuído responderá a grandes volumes, configurações diferentes e os comportamentos exclusivos de usuário final. Além disso, muitas partes de um aplicativo distribuído não tem nenhuma interface de usuário com o qual você pode interagir diretamente ou exibir a atividade de uma dessas partes.
No entanto, você pode compensar isso, permitindo que aplicativos distribuídos descrever a determinados eventos de interesse para administradores de sistema, especialmente as coisas dão errados por instrumentação o aplicativo — ou seja, colocando instruções de rastreamento em locais estratégicos no seu código. Se algo inesperado ocorre em tempo de execução (por exemplo, excessivamente lento o tempo de resposta), você pode determinar a causa mais provável.
Com instruções de rastreamento, você pode evitar a difícil tarefa de examinar o código-fonte original, modificá-lo, recompilar e tentando produzir o erro de tempo de execução dentro do ambiente de depuração. Lembre-se de que você pode instrumentar um aplicativo não apenas para exibir erros, mas também para monitorar o desempenho.
Posicionamento estratégico de instruções de rastreamento
Você deve atenção especial ao colocar suas instruções de rastreamento para uso durante o tempo de execução. Você deve considerar quais informações de rastreamento provavelmente serão necessárias em um aplicativo implantado, para que todos os cenários de rastreamento provável adequadamente são abordados. Como os aplicativos que usam o rastreamento variam amplamente, entretanto, existem há diretrizes gerais para o posicionamento estratégico de rastreamento. Para obter mais informações sobre a inserção de instruções de rastreamento, consulte Como: Adicionar instruções de rastreamento ao código do aplicativo.
Saída do rastreamento
Saída de rastreamento é coletada por objetos chamados ouvintes. Um ouvinte é um objeto que recebe a saída de rastreamento e grava em um dispositivo de saída (geralmente um arquivo texto, log ou janela). Quando um ouvinte de rastreamento é criado, ele normalmente é adicionado para o Trace.Listeners coleção, permitindo que o ouvinte receber toda a saída de rastreamento.
Informações de rastreamento são sempre gravadas pelo menos para o padrão rastreamento o destino de saída, o DefaultTraceListener. Se por algum motivo você excluiu o DefaultTraceListener sem adicionar qualquer outros ouvintes para o ouvintes coleção, você não receberá as mensagens de rastreamento. Para obter mais informações, consulte Ouvintes de rastreamento..
Os seis métodos de membros de Debug e Trace gravar informações de rastreamento são listados na tabela a seguir.
Método |
Saída |
---|---|
Assert |
O texto especificado; ou, se nenhum for especificado, a chamada da pilha. A saída será gravada somente se a condição especificada como um argumento na Assert é a instrução false. |
Falhar |
O texto especificado; ou, se nenhum for especificado, a chamada da pilha. |
Write |
O texto especificado. |
WriteIf |
O texto especificado, se a condição especificada como um argumento na WriteIf instrução for satisfeita. |
WriteLine |
O texto especificado e um retorno de carro. |
WriteLineIf |
O texto especificado e um carro retornam, se a condição especificada como um argumento na WriteLineIf instrução for satisfeita. |
Todos os ouvintes na ouvintes coleção receber as mensagens descritas na tabela acima, mas as ações executadas podem variar dependendo de qual tipo de ouvinte recebe a mensagem. Por exemplo, o DefaultTraceListener exibe uma caixa de diálogo assertion quando ele recebe um Falha ou falha Assert notificação, mas um TextWriterTraceListener simplesmente grava a saída para o seu fluxo.
Você pode produzir resultados personalizados implementando seu próprio ouvinte. Um ouvinte de rastreamento personalizada pode, por exemplo, exibir as mensagens para uma caixa de mensagem ou se conectar a um banco de dados para adicionar mensagens a uma tabela. Todos os ouvintes personalizados devem dar suporte os seis métodos mencionados acima. Para obter mais informações sobre como criar ouvintes definidos pelo desenvolvedor, consulte TraceListener na.Referência do NET Framework.
Observação
Em Visual Basic 2005, o Debug.Write, Debug.WriteIf, Debug.WriteLine, e Debug.WriteLineIf métodos substituíram a Debug. Print método estava disponível nas versões anteriores do Visual Basic.
O gravar e WriteLine métodos sempre escrever o texto que você especificar. Declarar, WriteIf, e WriteLineIf requer um Boolean argumento que controla ou não gravam o texto especificado; eles gravam o texto especificado somente se a expressão for true (para WriteIf e WriteLineIf), ou false (para Assert). O Falha método sempre grava o texto especificado. Para obter mais informações, consulte Como: Adicionar instruções de rastreamento ao código do aplicativo e o.Referência do NET Framework.
Questões de segurança
Se você não desabilitar o rastreamento e depuração antes de implantar um aplicativo ASP.NET típico, seu aplicativo pode revelar informações sobre o próprio que podem ser exploradas por um programa mal-intencionado. Para obter mais informações, consulte Como: Compilar condicionalmente com rastreamento e depuração, Criando no Visual Studio e Como: Configurar opções de rastreamento. Depuração também é configurável através do Internet Information Services (IIS).
Consulte também
Tarefas
Como: Adicionar instruções de rastreamento ao código do aplicativo
Como: Configurar opções de rastreamento