DefaultTraceListener Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- Herança
- 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 |
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 |
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 |
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.