DefaultTraceListener Classe

Definição

Fornece os métodos de saída padrão e o comportamento do rastreamento.

public ref class DefaultTraceListener : System::Diagnostics::TraceListener
public class DefaultTraceListener : System.Diagnostics.TraceListener
[System.Runtime.InteropServices.ComVisible(false)]
public class DefaultTraceListener : System.Diagnostics.TraceListener
type DefaultTraceListener = class
    inherit TraceListener
[<System.Runtime.InteropServices.ComVisible(false)>]
type DefaultTraceListener = class
    inherit TraceListener
Public Class DefaultTraceListener
Inherits TraceListener
Herança
DefaultTraceListener
Herança
DefaultTraceListener
Atributos

Exemplos

O exemplo de código a seguir calcula coeficientes binomiais, que são valores usados em probabilidade e estatísticas. Este exemplo usa um DefaultTraceListener para rastrear resultados e erros de log. Ele cria um novo DefaultTraceListener, adiciona-o Trace.Listeners à coleção e define a LogFileName propriedade para o arquivo de log especificado nos argumentos de linha de comando.

Se um erro for detectado durante o processamento do parâmetro de entrada ou se a CalcBinomial função gerar uma exceção, o Fail método registrará e exibirá uma mensagem de erro. Se a AssertUiEnabled propriedade for false, a mensagem de erro também será gravada no console. Quando o resultado é calculado com êxito, os Write(String) métodos e WriteLine(String) gravam os resultados no arquivo de log.

Os Failmétodos , Writee WriteLine fazem com que as informações de rastreamento sejam gravadas apenas no DefaultTraceListener. Para gravar informações de rastreamento para todos os ouvintes na Trace.Listeners coleção, use os Failmétodos , Writee 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

Comentários

Uma instância dessa classe é adicionada automaticamente à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 mensagem duplicadas para declarações.

Por padrão, os Write métodos e WriteLine emitem a mensagem para a função Win32 OutputDebugString e para o Debugger.Log método .

O Fail método, por padrão, exibe uma caixa de mensagem quando o aplicativo está em execução em um modo de interface do usuário; ele também emite a mensagem usando WriteLine.

Observação

A exibição da caixa de mensagem para Assert chamadas de método e Fail depende da presença do DefaultTraceListener. Se o DefaultTraceListener não estiver na Listeners coleção, a caixa de mensagem não será exibida. O DefaultTraceListener pode ser removido chamando o Clear método na Listeners propriedade (System.Diagnostics.Trace.Listeners.Clear()). Para aplicativos .NET Framework, você também pode usar o <elemento clear> e o <elemento remove> no arquivo de configuração do aplicativo.

Você deve habilitar o rastreamento ou a depuração para usar um ouvinte de rastreamento. A sintaxe a seguir é específica do compilador. Se você usar compiladores diferentes de C# ou Visual Basic, consulte a documentação do compilador.

  • Para habilitar a depuração em C#, adicione o /d:DEBUG sinalizador à linha de comando do compilador ao compilar o código ou adicione #define DEBUG à parte superior do arquivo. No Visual Basic, adicione o /d:DEBUG=True sinalizador à linha de comando do compilador.

  • Para habilitar o rastreamento em C#, adicione o /d:TRACE sinalizador à linha de comando do compilador ao compilar o código ou adicione #define TRACE à parte superior do arquivo. No Visual Basic, adicione o /d:TRACE=True sinalizador à linha de comando do compilador.

Para aplicativos .NET Framework, você pode adicionar um ouvinte de rastreamento editando o arquivo de configuração que corresponde ao nome do aplicativo. Nesse arquivo, você pode adicionar um ouvinte, definir seu tipo e definir seus parâmetros, remover um ouvinte ou limpar todos os ouvintes definidos anteriormente pelo aplicativo. O arquivo 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

DefaultTraceListener()

Inicializa uma nova instância da classe DefaultTraceListener com “Default” como o valor da propriedade Name.

Propriedades

AssertUiEnabled

Obtém ou define um valor que indica se o aplicativo está sendo executado no modo de interface do usuário.

Attributes

Obtém os atributos do ouvinte de rastreamento personalizados definidos no arquivo de configuração de aplicativo.

(Herdado de TraceListener)
Filter

Obtém ou define o filtro de rastreamento para o ouvinte de rastreamento.

(Herdado de TraceListener)
IndentLevel

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

(Herdado de TraceListener)
IndentSize

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

(Herdado de TraceListener)
IsThreadSafe

Obtém um valor que indica se o ouvinte de rastreamento é thread-safe.

(Herdado de TraceListener)
LogFileName

Obtém ou define o nome de um arquivo de log no qual as mensagens de rastreamento e depuração serão gravadas.

Name

Obtém ou define um nome para este TraceListener.

(Herdado de TraceListener)
NeedIndent

Obtém ou define um valor que indica se a saída deve ser recuada.

(Herdado de TraceListener)
TraceOutputOptions

Obtém ou define as opções de saída de rastreamento.

(Herdado de TraceListener)

Métodos

Close()

Quando substituído em uma classe derivada, fecha o fluxo de saída para que ele não receba mais saídas de rastreamento ou depuração.

(Herdado de TraceListener)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pelo TraceListener.

(Herdado de TraceListener)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo TraceListener e opcionalmente libera os recursos gerenciados.

(Herdado de TraceListener)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fail(String)

Emite ou exibe uma mensagem e um rastreamento de pilha para uma declaração que sempre falha.

Fail(String, String)

Emite ou exibe mensagens detalhadas e um rastreamento de pilha para uma declaração que sempre falha.

Flush()

Quando substituído em uma classe derivada, libera o buffer de saída.

(Herdado de TraceListener)
GetHashCode()

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

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetSupportedAttributes()

Obtém os atributos personalizados com suporte no ouvinte de rastreamento.

(Herdado de TraceListener)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Grava as informações de rastreamento, um objeto de dados e informações de evento para a saída específica do ouvinte.

(Herdado de TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Grava informações de rastreamento, uma matriz de objetos de dados e informações de evento na saída específica do ouvinte.

(Herdado de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Grava as informações de rastreamento e evento para a saída específica do ouvinte.

(Herdado de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Grava informações de rastreamento, uma mensagem e informações de evento na saída específica do ouvinte.

(Herdado de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Grava informações de rastreamento, uma matriz de objetos formatada e informações de evento na saída específica do ouvinte.

(Herdado de TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Grava informações de rastreamento, uma mensagem, uma identidade de atividade relacionada e informações de evento na saída específica do ouvinte.

(Herdado de TraceListener)
Write(Object)

Grava o valor do método ToString() do objeto no ouvinte criado ao implementar a classe TraceListener.

(Herdado de TraceListener)
Write(Object, String)

Grava um nome de categoria e o valor do método ToString() do objeto no ouvinte criado ao implementar a classe TraceListener.

(Herdado de TraceListener)
Write(String)

Grava a saída na função OutputDebugString e no método Log(Int32, String, String).

Write(String, String)

Grava um nome de categoria e uma mensagem no ouvinte criado ao implementar a classe TraceListener.

(Herdado de TraceListener)
WriteIndent()

Grava o recuo para o ouvinte criar durante a implementação dessa classe e redefine a propriedade NeedIndent para false.

(Herdado de TraceListener)
WriteLine(Object)

Grava o valor do método ToString() do objeto no ouvinte criado ao implementar a classe TraceListener, seguido por um terminador de linha.

(Herdado de TraceListener)
WriteLine(Object, String)

Grava um nome de categoria e o valor do método ToString() do objeto no ouvinte criado ao implementar a classe TraceListener, seguido por um terminador de linha.

(Herdado de TraceListener)
WriteLine(String)

Grava a saída para a função OutputDebugString e o método Log(Int32, String, String), seguido por um retorno de carro e alimentação de linha (\r\n).

WriteLine(String, String)

Grava um nome de categoria e uma mensagem no ouvinte criado ao implementar a classe TraceListener, seguido por um terminador de linha.

(Herdado de TraceListener)

Aplica-se a

Acesso thread-safe

Essa classe é thread-safe.

Confira também