DefaultTraceListener Classe

Definição

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
DefaultTraceListener
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:DEBUG flag à linha de comandos do compilador quando compilar o seu código, ou adicione #define DEBUG no 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:TRACE flag à linha de comandos do compilador quando compilar o seu código, ou adicione #define TRACE no 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 OutputDebugString função e no Log(Int32, String, String) método.

WriteIndent()

Escreve o indentamento para o ouvinte que crias quando implementas esta classe, e redefine a NeedIndent propriedade para false.

(Herdado de TraceListener)
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 OutputDebugString função e no Log(Int32, String, String) método, seguida de um retorno de carro e um avanço de linha (\r\n).

Aplica-se a

Segurança de Thread

Esta aula é segura para fios.

Ver também