DefaultTraceListener Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece os métodos de saída e o comportamento predefinidos para o rastreio.
public ref class DefaultTraceListener : System::Diagnostics::TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
public class DefaultTraceListener : System.Diagnostics.TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type DefaultTraceListener = class
inherit TraceListener
type DefaultTraceListener = class
inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
- Herança
- Atributos
Exemplos
O seguinte exemplo de código calcula coeficientes binomiais, que são valores usados em probabilidade e estatística. Este exemplo usa a DefaultTraceListener para rastrear resultados e registar erros. Cria um novo DefaultTraceListener, adiciona-o à Trace.Listeners coleção e define a LogFileName propriedade para o ficheiro de registo especificado nos argumentos da linha de comandos.
Se for detetado um erro durante o processamento do parâmetro de entrada, ou se a CalcBinomial função lançar uma exceção, o Fail método regista e apresenta uma mensagem de erro. Se a AssertUiEnabled propriedade for false, a mensagem de erro também é escrita na consola. Quando o resultado é calculado com sucesso, os Write(String) métodos e WriteLine(String) escrevem os resultados no ficheiro de registo.
Os Failmétodos , Write, e WriteLine fazem com que a informação de traço seja escrita apenas para o DefaultTraceListener. Para escrever informação de rastreio para todos os ouvintes da Trace.Listeners coleção, use os Failmétodos , Write, e WriteLine da Trace classe.
using System;
using System.Diagnostics;
using Microsoft.VisualBasic;
class Binomial
{
// args(0) is the number of possibilities for binomial coefficients.
// args(1) is the file specification for the trace log file.
public static void Main(string[] args)
{
decimal possibilities;
decimal iter;
// Remove the original default trace listener.
Trace.Listeners.RemoveAt(0);
// Create and add a new default trace listener.
DefaultTraceListener defaultListener;
defaultListener = new DefaultTraceListener();
Trace.Listeners.Add(defaultListener);
// Assign the log file specification from the command line, if entered.
if (args.Length>=2)
{
defaultListener.LogFileName = args[1];
}
// Validate the number of possibilities argument.
if (args.Length>=1)
// Verify that the argument is a number within the correct range.
{
try
{
const decimal MAX_POSSIBILITIES = 99;
possibilities = Decimal.Parse(args[0]);
if (possibilities<0||possibilities>MAX_POSSIBILITIES)
{
throw new Exception(String.Format("The number of possibilities must " +
"be in the range 0..{0}.", MAX_POSSIBILITIES));
}
}
catch(Exception ex)
{
string failMessage = String.Format("\"{0}\" " +
"is not a valid number of possibilities.", args[0]);
defaultListener.Fail(failMessage, ex.Message);
if (!defaultListener.AssertUiEnabled)
{
Console.WriteLine(failMessage+ "\n" +ex.Message);
}
return;
}
}
else
{
// Report that the required argument is not present.
const string ENTER_PARAM = "Enter the number of " +
"possibilities as a command line argument.";
defaultListener.Fail(ENTER_PARAM);
if (!defaultListener.AssertUiEnabled)
{
Console.WriteLine(ENTER_PARAM);
}
return;
}
for(iter=0; iter<=possibilities; iter++)
{
decimal result;
string binomial;
// Compute the next binomial coefficient and handle all exceptions.
try
{
result = CalcBinomial(possibilities, iter);
}
catch(Exception ex)
{
string failMessage = String.Format("An exception was raised when " +
"calculating Binomial( {0}, {1} ).", possibilities, iter);
defaultListener.Fail(failMessage, ex.Message);
if (!defaultListener.AssertUiEnabled)
{
Console.WriteLine(failMessage+ "\n" +ex.Message);
}
return;
}
// Format the trace and console output.
binomial = String.Format("Binomial( {0}, {1} ) = ", possibilities, iter);
defaultListener.Write(binomial);
defaultListener.WriteLine(result.ToString());
Console.WriteLine("{0} {1}", binomial, result);
}
}
public static decimal CalcBinomial(decimal possibilities, decimal outcomes)
{
// Calculate a binomial coefficient, and minimize the chance of overflow.
decimal result = 1;
decimal iter;
for(iter=1; iter<=possibilities-outcomes; iter++)
{
result *= outcomes+iter;
result /= iter;
}
return result;
}
}
Imports System.Diagnostics
Module Binomial
' args(0) is the number of possibilities for binomial coefficients.
' args(1) is the file specification for the trace log file.
Sub Main(ByVal args() As String)
Dim possibilities As Decimal
Dim iter As Decimal
' Remove the original default trace listener.
Trace.Listeners.RemoveAt(0)
' Create and add a new default trace listener.
Dim defaultListener As DefaultTraceListener
defaultListener = New DefaultTraceListener
Trace.Listeners.Add(defaultListener)
' Assign the log file specification from the command line, if entered.
If args.Length >= 2 Then
defaultListener.LogFileName = args(1)
End If
' Validate the number of possibilities argument.
If args.Length >= 1 Then
' Verify that the argument is a number within the correct range.
Try
Const MAX_POSSIBILITIES As Decimal = 99
possibilities = Decimal.Parse(args(0))
If possibilities < 0 Or possibilities > MAX_POSSIBILITIES Then
Throw New Exception( _
String.Format("The number of possibilities must " & _
"be in the range 0..{0}.", MAX_POSSIBILITIES))
End If
Catch ex As Exception
Dim failMessage As String = String.Format("""{0}"" " & _
"is not a valid number of possibilities.", args(0))
defaultListener.Fail(failMessage, ex.Message)
If Not defaultListener.AssertUiEnabled Then
Console.WriteLine(failMessage & vbCrLf & ex.Message)
End If
Return
End Try
Else
' Report that the required argument is not present.
Const ENTER_PARAM As String = "Enter the number of " & _
"possibilities as a command line argument."
defaultListener.Fail(ENTER_PARAM)
If Not defaultListener.AssertUiEnabled Then
Console.WriteLine(ENTER_PARAM)
End If
Return
End If
For iter = 0 To possibilities
Dim result As Decimal
Dim binomial As String
' Compute the next binomial coefficient and handle all exceptions.
Try
result = CalcBinomial(possibilities, iter)
Catch ex As Exception
Dim failMessage As String = String.Format( _
"An exception was raised when " & _
"calculating Binomial( {0}, {1} ).", _
possibilities, iter)
defaultListener.Fail(failmessage, ex.Message)
If Not defaultListener.AssertUiEnabled Then
Console.WriteLine(failMessage & vbCrLf & ex.Message)
End If
Return
End Try
' Format the trace and console output.
binomial = String.Format("Binomial( {0}, {1} ) = ", _
possibilities, iter)
defaultListener.Write(binomial)
defaultListener.WriteLine(result.ToString)
Console.WriteLine("{0} {1}", binomial, result)
Next
End Sub
Function CalcBinomial(ByVal possibilities As Decimal, _
ByVal outcomes As Decimal) As Decimal
' Calculate a binomial coefficient, and minimize the chance of overflow.
Dim result As Decimal = 1
Dim iter As Decimal
For iter = 1 To possibilities - outcomes
result *= outcomes + iter
result /= iter
Next
Return result
End Function
End Module
Observações
Uma instância desta classe é automaticamente adicionada às Debug.Listeners coleções e.Trace.Listeners Adicionar explicitamente um segundo DefaultTraceListener causa mensagens duplicadas na janela de saída do depurador e caixas de mensagens duplicadas para asserções.
Por defeito, os Write métodos e WriteLine emitem a mensagem para a função OutputDebugString do Win32 e para o Debugger.Log método.
O Fail método, por defeito, exibe uma caixa de mensagem quando a aplicação está a correr em modo de interface de utilizador; também emite a mensagem usando WriteLine.
Note
A apresentação da caixa de mensagens para Assert e Fail chamadas de método depende da presença do DefaultTraceListener. Se o DefaultTraceListener não estiver na Listeners coleção, a caixa de mensagem não é exibida. O DefaultTraceListener pode ser removido chamando o Clear método na Listeners propriedade (System.Diagnostics.Trace.Listeners.Clear()). Para .NET aplicações Framework, também pode usar o elemento <clear> e o elemento <remove> no ficheiro de configuração da sua aplicação.
Deve ativar o rastreio ou depuração para usar um ouvinte de rastreamento. A sintaxe seguinte é específica do compilador. Se usar compiladores que não sejam C# ou Visual Basic, consulte a documentação do seu compilador.
Para permitir a depuração em C#, adicione a
/d:DEBUGflag à linha de comandos do compilador quando compilar o seu código, ou adicione#define DEBUGno topo do seu ficheiro. Em Visual Basic, adicione a flag/d:DEBUG=Trueà linha de comandos do compilador.Para ativar o traçado em C#, adicione a
/d:TRACEflag à linha de comandos do compilador quando compilar o seu código, ou adicione#define TRACEno topo do seu ficheiro. Em Visual Basic, adicione a flag/d:TRACE=Trueà linha de comandos do compilador.
Para aplicações .NET Framework, pode adicionar um ouvinte de rastreio editando o ficheiro de configuração correspondente ao nome da sua aplicação. Dentro deste ficheiro, pode adicionar um ouvinte, definir o seu tipo e os seus parâmetros, remover um ouvinte ou limpar todos os ouvintes previamente definidos pela aplicação. O ficheiro de configuração deve ser formatado de forma semelhante ao seguinte exemplo:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<remove name="Default" />
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\myListener.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Construtores
| Name | Description |
|---|---|
| DefaultTraceListener() |
Inicializa uma nova instância da DefaultTraceListener classe com "Default" como valor de Name propriedade. |
Propriedades
| Name | Description |
|---|---|
| AssertUiEnabled |
Recebe ou define um valor que indica se a aplicação está a correr em modo de interface de utilizador. |
| Attributes |
Obtém os atributos personalizados do ouvinte de rastreio definidos no ficheiro de configuração da aplicação. (Herdado de TraceListener) |
| Filter |
Obtém ou define o filtro de traço para o ouvinte de traços. (Herdado de TraceListener) |
| IndentLevel |
Obtém ou define o nível da recuação. (Herdado de TraceListener) |
| IndentSize |
Obtém ou define o número de espaços num reentro. (Herdado de TraceListener) |
| IsThreadSafe |
Recebe um valor que indica se o ouvinte de rastreio é seguro para threads. (Herdado de TraceListener) |
| LogFileName |
Recebe ou define o nome de um ficheiro de registo para escrever mensagens de rastreio ou depuração. |
| Name |
Obtém ou define um nome para este TraceListener. (Herdado de TraceListener) |
| NeedIndent |
Obtém ou define um valor que indica se deve indentar a saída. (Herdado de TraceListener) |
| TraceOutputOptions |
Obtém ou define as opções de saída do traço. (Herdado de TraceListener) |
Métodos
| Name | Description |
|---|---|
| Close() |
Quando é sobreposto numa classe derivada, fecha o fluxo de saída para que já não receba saída de traçado ou depuração. (Herdado de TraceListener) |
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Liberta todos os recursos utilizados pelo TraceListener. (Herdado de TraceListener) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo TraceListener e opcionalmente liberta os recursos geridos. (Herdado de TraceListener) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Fail(String, String) |
Emite ou apresenta mensagens detalhadas e um rastreio de pilha para uma asserção que falha sempre. |
| Fail(String) |
Emite ou exibe uma mensagem e um rastreio de pilha para uma asserção que falha sempre. |
| Flush() |
Quando sobreposto numa classe derivada, limpa o buffer de saída. (Herdado de TraceListener) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetSupportedAttributes() |
Obtém os atributos personalizados suportados pelo ouvinte de rastreamento. (Herdado de TraceListener) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Escreve informação de traço, um objeto de dados e informações de eventos para a saída específica do ouvinte. (Herdado de TraceListener) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Escreve informação de rastreio, um array de objetos de dados e informação de eventos para a saída específica do ouvinte. (Herdado de TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Escreve informação de rastreio, um array formatado de objetos e informações de eventos para a saída específica do ouvinte. (Herdado de TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Escreve informação de rastreio, uma mensagem e informações de eventos para a saída específica do ouvinte. (Herdado de TraceListener) |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Escreve informações de rastreio e evento para a saída específica do ouvinte. (Herdado de TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Escreve informação de rastreio, uma mensagem, uma identidade de atividade relacionada e informações de eventos para a saída específica do ouvinte. (Herdado de TraceListener) |
| Write(Object, String) |
Escreve um nome de categoria e o valor do método do objeto ToString() para o ouvinte que crias quando implementas a TraceListener classe. (Herdado de TraceListener) |
| Write(Object) |
Escreve o valor do método do objeto ToString() para o ouvinte que crias quando implementas a TraceListener classe. (Herdado de TraceListener) |
| Write(String, String) |
Escreve um nome de categoria e uma mensagem para o ouvinte que crias quando implementas a TraceListener classe. (Herdado de TraceListener) |
| Write(String) |
Escreve a saída na |
| WriteIndent() |
Escreve o indentamento para o ouvinte que crias quando implementas esta classe, e redefine a NeedIndent propriedade para |
| WriteLine(Object, String) |
Escreve um nome de categoria e o valor do método do objeto ToString() para o ouvinte que crias quando implementas a TraceListener classe, seguido de um terminador de linha. (Herdado de TraceListener) |
| WriteLine(Object) |
Escreve o valor do método do ToString() objeto para o ouvinte que crias quando implementas a TraceListener classe, seguido de um terminador de linha. (Herdado de TraceListener) |
| WriteLine(String, String) |
Escreve um nome de categoria e uma mensagem para o ouvinte que crias quando implementas a TraceListener classe, seguido de um terminador de linha. (Herdado de TraceListener) |
| WriteLine(String) |
Escreve a saída na |
Aplica-se a
Segurança de Thread
Esta aula é segura para fios.