Como: Adicionar instruções de rastreamento ao código do aplicativo
Nota
Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.
Os métodos usados com mais frequência para rastreamento são os métodos para gravar saída para ouvintes: Write, WriteIf, WriteLine, WriteLineIf, Assert e Fail. Esses métodos podem ser divididos em duas categorias: Write, WriteLine e Fail todos emitem saída incondicionalmente, enquanto WriteIf, WriteLineIf e Assert testam uma condição booleana e gravam ou não gravam com base no valor da condição. WriteIf e WriteLineIf emitem saída se a condição for true
, e Assert emite saída se a condição for false
.
Ao projetar a sua estratégia de rastreio e depuração, deve pensar no aspeto que quer que a saída tenha. Várias instruções Write preenchidas com informações não relacionadas criarão um log difícil de ler. Por outro lado, usar WriteLine para colocar instruções relacionadas em linhas separadas pode dificultar a distinção de quais informações pertencem juntas. Em geral, use várias instruções Write quando quiser combinar informações de várias fontes para criar uma única mensagem informativa e use a instrução WriteLine quando quiser criar uma única mensagem completa.
Para escrever uma linha completa
Chame o WriteLine método ou WriteLineIf .
Um retorno de carro é anexado ao final da mensagem que esse método retorna, para que a próxima mensagem retornada por Write, WriteIf, WriteLine ou WriteLineIf comece na seguinte linha:
Dim errorFlag As Boolean = False Trace.WriteLine("Error in AppendData procedure.") Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.")
bool errorFlag = false; System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure."); System.Diagnostics.Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.");
Para escrever uma linha parcial
Chame o Write método ou WriteIf .
A próxima mensagem enviada por um Write, WriteIf, WriteLine ou WriteLineIf começará na mesma linha que a mensagem emitida pela instrução Write ou WriteIf:
Dim errorFlag As Boolean = False Trace.WriteIf(errorFlag, "Error in AppendData procedure.") Debug.WriteIf(errorFlag, "Transaction abandoned.") Trace.Write("Invalid value for data request")
bool errorFlag = false; System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure."); System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned."); Trace.Write("Invalid value for data request");
Para verificar se determinadas condições existem antes ou depois de executar um método
Chame o Assert método.
Dim i As Integer = 4 Trace.Assert(i = 5, "i is not equal to 5.")
int i = 4; System.Diagnostics.Trace.Assert(i == 5, "i is not equal to 5.");
Nota
Você pode usar Assert com rastreamento e depuração. Este exemplo produz a pilha de chamadas para qualquer ouvinte na coleção Listeners . Para obter mais informações, consulte Asserções em código gerenciado e Debug.Assert.