Trace Classe

Definição

Fornece um conjunto de métodos e propriedades que ajudam a rastrear a execução do código. Essa classe não pode ser herdada.

public ref class Trace sealed
public sealed class Trace
type Trace = class
Public NotInheritable Class Trace
Herança
Trace

Exemplos

O exemplo a seguir usa Trace para indicar o início e o fim da execução de um programa. O exemplo também usa os Trace.Indent métodos e Trace.Unindent para distinguir a saída de rastreamento. Para obter um exemplo mais completo do uso de Trace, consulte Como adicionar instruções de rastreamento ao código do aplicativo.

// Specify /DTRACE when compiling.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main()
{
   #if defined(TRACE)
   Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine( "Entering Main" );
   #endif
   Console::WriteLine( "Hello World." );
   #if defined(TRACE)
   Trace::WriteLine( "Exiting Main" );
   Trace::Unindent();
   #endif
   return 0;
}
// Specify /d:TRACE when compiling.

using System;
using System.Diagnostics;

class Test
{
    static void Main()
    {
       Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
       Trace.AutoFlush = true;
       Trace.Indent();
       Trace.WriteLine("Entering Main");
       Console.WriteLine("Hello World.");
       Trace.WriteLine("Exiting Main");
       Trace.Unindent();
    }
}
' Specify /d:TRACE=True when compiling.

Imports System.Diagnostics

Class Test
    
    Shared Sub Main()
    
        Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
        Trace.AutoFlush = True
        Trace.Indent()
        Trace.WriteLine("Entering Main")
        Console.WriteLine("Hello World.")
        Trace.WriteLine("Exiting Main")
        Trace.Unindent()
        
    End Sub

End Class

Comentários

Você pode usar as propriedades e os métodos na Trace classe para instrumentar builds de versão. A instrumentação permite monitorar a integridade do aplicativo em execução nas configurações da vida real. O rastreamento ajuda você a isolar problemas e corrigi-los sem perturbar um sistema em execução.

Essa classe fornece métodos para exibir uma Assert caixa de diálogo e emitir uma declaração que sempre Failserá . Essa classe fornece métodos de gravação nas seguintes variações:

As BooleanSwitch classes e TraceSwitch fornecem meios para controlar dinamicamente a saída de rastreamento. Em .NET Framework aplicativos, você pode modificar os valores desses comutadores sem recompilar seu aplicativo. Para obter informações sobre como usar o arquivo de configuração para definir uma opção em um aplicativo .NET Framework, consulte a Switch classe e Como: Create, Inicializar e Configurar Comutadores de Rastreamento.

Você pode personalizar o destino da saída de rastreamento adicionando TraceListener instâncias ou removendo instâncias da Listeners coleção. A Listeners coleção é compartilhada pelas Debug classes e Trace , a adição de um ouvinte de rastreamento a qualquer classe adiciona o ouvinte a ambos. Por padrão, a saída de rastreamento é emitida usando a DefaultTraceListener classe .

Observação

Adicionar um ouvinte de rastreamento à Listeners coleção pode fazer com que uma exceção seja gerada durante o rastreamento, se um recurso usado pelo ouvinte de rastreamento não estiver disponível. As condições e a exceção geradas dependem do ouvinte de rastreamento e não podem ser enumeradas neste tópico. Pode ser útil fazer chamadas aos Trace métodos em try/catch blocos para detectar e manipular quaisquer exceções de ouvintes de rastreamento.

Observação

Se você adicionar ouvintes de rastreamento a um código parcialmente confiável, receberá uma SecurityException exceção, pois adicionar ouvintes de rastreamento requer UnmanagedCode permissão. Para rastrear código parcialmente confiável em execução em uma área restrita no Visual Studio, não adicione ouvintes de rastreamento. Em vez disso, exiba as Trace mensagens e Debug na janela Saída .

A Trace classe fornece propriedades para obter ou definir o nível de Indent e o IndentSizee se deseja AutoFlush após cada gravação.

Em .NET Framework aplicativos, você pode definir o AutoFlush e IndentSize para Trace editando o arquivo de configuração que corresponde ao nome do aplicativo. O arquivo de configuração deve ser formatado como o exemplo a seguir:

<configuration>  
  <system.diagnostics>  
    <trace autoflush="false" indentsize="3" />  
  </system.diagnostics>  
</configuration>  

O ConditionalAttribute atributo é aplicado aos métodos de Trace. Os compiladores que dão suporte ConditionalAttribute a ignorar chamadas a esses métodos TRACE , a menos que seja definido como um símbolo de compilação condicional. Consulte a documentação de um compilador para determinar se ConditionalAttribute há suporte e a sintaxe para definir um símbolo de compilação condicional.

Observação

Em projetos do Visual Studio, por padrão, o DEBUG símbolo de compilação condicional é definido para builds de depuração e o TRACE símbolo é definido para builds de depuração e lançamento.

Para definir o TRACE símbolo de compilação condicional em C#, adicione a opção /d:TRACE à linha de comando do compilador ao compilar seu código usando uma linha de comando ou adicione #define TRACE à parte superior do arquivo. No Visual Basic, adicione a opção /d:TRACE=True à linha de comando do compilador ou adicione #Const TRACE=True ao arquivo.

ConditionalAttribute não é compatível com o compilador C++. Para fornecer funcionalidade equivalente, você deve colocar chamadas entre os métodos de Trace em um #if defined(TRACE) ... #endif bloco e adicionar a opção /DTRACE à linha de comando do compilador ou adicionar #define TRACE ao arquivo.

Propriedades

AutoFlush

Obtém ou define se o Flush() deve ser chamado no Listeners após cada gravação.

CorrelationManager

Obtém o gerenciador de correlação para o thread para esse rastreamento.

IndentLevel

Obtém ou define o nível de recuo.

IndentSize

Obtém ou define o número de espaços em um recuo.

Listeners

Obtém a coleção de ouvintes monitorando a saída de rastreamento.

UseGlobalLock

Obtém ou define um valor que indica se o bloqueio global deve ser usado.

Métodos

Assert(Boolean)

Verifica uma condição; se a condição for false, exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Assert(Boolean, String)

Verifica uma condição, se a condição for false, gerará uma mensagem especificada e exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Assert(Boolean, String, String)

Verifica uma condição. Se a condição for false, gerará duas mensagens especificadas e exibe uma caixa de mensagem que mostra a pilha de chamadas.

Close()

Libera o buffer de saída e, em seguida, fecha o Listeners.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fail(String)

Emite a mensagem de erro especificada.

Fail(String, String)

Emite uma mensagem de erro e uma mensagem de erro detalhada.

Flush()

Libera o buffer de saída e faz com que os dados armazenados em buffer sejam gravados no Listeners.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Indent()

Aumenta o IndentLevel atual em um.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Refresh()

Atualiza os dados de configuração de rastreamento.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TraceError(String)

Grava uma mensagem de erro para os ouvintes de rastreamento na coleção Listeners usando a mensagem especificada.

TraceError(String, Object[])

Grava uma mensagem de erro para os ouvintes de rastreamento na coleção Listeners usando a matriz de objetos e as informações de formatação especificadas.

TraceInformation(String)

Grava uma mensagem informativa para os ouvintes de rastreamento na coleção Listeners usando a mensagem especificada.

TraceInformation(String, Object[])

Grava uma mensagem informativa para os ouvintes de rastreamento na coleção Listeners usando a matriz de objetos e as informações de formatação especificadas.

TraceWarning(String)

Grava uma mensagem de aviso para os ouvintes de rastreamento na coleção Listeners usando a mensagem especificada.

TraceWarning(String, Object[])

Grava uma mensagem de aviso para os ouvintes de rastreamento na coleção Listeners usando a matriz de objetos e as informações de formatação especificadas.

Unindent()

Diminui o IndentLevel atual em um.

Write(Object)

Grava o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners.

Write(Object, String)

Grava um nome de categoria e o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners.

Write(String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners.

Write(String, String)

Grava um nome de categoria e uma mensagem para os ouvintes de rastreamento na coleção Listeners.

WriteIf(Boolean, Object)

Grava o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners se uma condição for true.

WriteIf(Boolean, Object, String)

Grava um nome de categoria e o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners se uma condição for true.

WriteIf(Boolean, String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners se uma condição for true.

WriteIf(Boolean, String, String)

Grava um nome e a mensagem da categoria nos ouvintes de rastreamento da coleção Listeners se uma condição for true.

WriteLine(Object)

Grava o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners.

WriteLine(Object, String)

Grava um nome de categoria e o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners.

WriteLine(String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners.

WriteLine(String, String)

Grava um nome de categoria e mensagem nos ouvintes de rastreamento da coleção Listeners.

WriteLineIf(Boolean, Object)

Grava o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners se uma condição for true.

WriteLineIf(Boolean, Object, String)

Grava um nome de categoria e o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners se uma condição for true.

WriteLineIf(Boolean, String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners se uma condição for true.

WriteLineIf(Boolean, String, String)

Grava um nome e a mensagem da categoria nos ouvintes de rastreamento da coleção Listeners se uma condição for true.

Eventos

Refreshing

Ocorre quando um TraceSource precisa ser atualizado da configuração.

Aplica-se a

Acesso thread-safe

Este tipo é thread-safe.

Confira também