XmlWriterTraceListener Classe

Definição

Direciona a saída de rastreio ou depuração como dados codificados em XML para um TextWriter ou para um Stream, como um FileStream.

public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
    inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
Herança

Exemplos

O seguinte exemplo de código mostra o uso da XmlWriterTraceListener classe para escrever dados tanto escapados como não escapados em registos de ficheiros.

using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;

class testClass
{
    static void Main()
    {
        File.Delete("NotEscaped.xml");
        TraceSource ts = new TraceSource("TestSource");
        ts.Listeners.Add(new XmlWriterTraceListener("NotEscaped.xml"));
        ts.Switch.Level = SourceLevels.All;
        string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
        XmlTextReader myXml = new XmlTextReader(new StringReader(testString));
        XPathDocument xDoc = new XPathDocument(myXml);
        XPathNavigator myNav = xDoc.CreateNavigator();
        ts.TraceData(TraceEventType.Error, 38, myNav);

        ts.Flush();
        ts.Close();

        File.Delete("Escaped.xml");
        TraceSource ts2 = new TraceSource("TestSource2");
        ts2.Listeners.Add(new XmlWriterTraceListener("Escaped.xml"));
        ts2.Switch.Level = SourceLevels.All;
        ts2.TraceData(TraceEventType.Error, 38, testString);

        ts2.Flush();
        ts2.Close();
    }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Diagnostics



Class testClass
    
    Shared Sub Main() 
        File.Delete("NotEscaped.xml")
        Dim ts As New TraceSource("TestSource")
        ts.Listeners.Add(New XmlWriterTraceListener("NotEscaped.xml"))
        ts.Switch.Level = SourceLevels.All
        Dim testString As String = "<Test><InnerElement Val=""1"" /><InnerElement Val=""Data""/><AnotherElement>11</AnotherElement></Test>"
        Dim myXml As New XmlTextReader(New StringReader(testString))
        Dim xDoc As New XPathDocument(myXml)
        Dim myNav As XPathNavigator = xDoc.CreateNavigator()
        ts.TraceData(TraceEventType.Error, 38, myNav)

        ts.Flush()
        ts.Close()
        
        File.Delete("Escaped.xml")
        Dim ts2 As New TraceSource("TestSource2")
        ts2.Listeners.Add(New XmlWriterTraceListener("Escaped.xml"))
        ts2.Switch.Level = SourceLevels.All
        ts2.TraceData(TraceEventType.Error, 38, testString)
        
        ts2.Flush()
        ts2.Close()
    
    End Sub
End Class

Observações

Note

Deve ter permissão de código não gerido para criar uma instância da XmlWriterTraceListener classe.

A XmlWriterTraceListener classe converte informações de rastreio e depuração num fluxo de texto codificado em XML. A descrição da saída XML é apresentada nas tabelas que se seguem. Pode usar a ferramenta Service Trace Viewer (SvcTraceViewer.exe) para mostrar a saída XML.

Podes criar um XmlWriterTraceListener no teu código. Alternativamente, para .NET aplicações Framework, podes ativar ou desativar um XmlWriterTraceListener através do ficheiro de configuração da aplicação e depois usar o XmlWriterTraceListener configurado na tua aplicação. Para configurar um XmlWriterTraceListener, edite o ficheiro de configuração que corresponde ao nome da sua aplicação. Neste ficheiro, pode adicionar ou remover um ouvinte, definir as propriedades para um ouvinte ou remover ouvintes. O ficheiro de configuração deve ser formatado como o seguinte exemplo.

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="xmlListener"
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData="xmlOutput.xml"
          traceOutputOptions="ProcessId, DateTime" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

A XmlWriterTraceListener classe herda a Filter propriedade da classe TraceListenerbase . A Filter propriedade permite um nível adicional de filtragem de saída de traço no ouvinte. Se houver um filtro presente, os Trace métodos do ouvinte de traços chamam o ShouldTrace método do filtro para determinar se emitem o traço.

Note

Se for feita uma tentativa de escrita num ficheiro que está em uso ou indisponível, o nome do ficheiro é automaticamente prefixado por um GUID.

Note

Os métodos de ouvinte destinam-se a ser chamados pelos métodos das Debugclasses , Trace, e TraceSource . Os métodos de ouvinte não foram concebidos para serem chamados diretamente a partir do código da aplicação. O XmlWriterTraceListener ouvinte destina-se principalmente ao uso da TraceSource turma. Os Write métodos e WriteLine podem ser chamados pelas Trace classes e, Debug e os valores padrão são fornecidos para os elementos XML que Trace e Debug não fornecem valores para.

A tabela seguinte descreve os elementos e atributos da saída XML.

Elemento Attributes Output Observações
CallStack None Depende da presença da Callstack bandeira na TraceOutputOptions propriedade. Caracteres especiais como > ou < são substituídos por sequências de fuga. Veja a tabela de tradução de caracteres escapados que se segue.
Computer None Sempre presente. O valor da MachineName propriedade.
Correlation ActivityID Sempre presente Se não especificado, o padrão é um GUID vazio.
RelatedActivityID Depende da presença do relatedActivityId parâmetro na chamada do método Trace. O relatedActivityId parâmetro do TraceTransfer método.
DataItem None Depende do data parâmetro do TraceData método. Este elemento pode conter um array de elementos ou um elemento, pelo que os valores são escritos como um conjunto de DataItem nós sob o TraceData elemento.

A saída de dados utiliza o ToString método dos objetos de dados passados.
EventID None Sempre presente. Entrada de parâmetros (id).
Execution ProcessName Sempre presente. Do TraceEventCache.
ProcessID Sempre presente. Do TraceEventCache.
ThreadID Sempre presente. Do TraceEventCache.
Level None Sempre presente. Entrada de parâmetros (o valor numérico de eventType). Valores de parâmetros superiores a 255 são indicados como 255.
LogicalOperationStack None Depende da presença da LogicalOperationStack bandeira na TraceOutputOptions propriedade. Pode haver mais do que uma operação lógica, por isso os valores são escritos como LogicalOperation nós sob o LogicalOperationStack elemento.
Message None Depende da presença de uma mensagem na chamada ao método Trace. Este elemento é uma mensagem formatada se forem fornecidos argumentos de formatação.
Source Name Sempre presente. Introdução de parâmetros.
SubType Name Sempre presente. Introdução de parâmetros.
TimeCreated SystemTime Sempre presente. Se não estiver presente no TraceEventCache, o padrão é o tempo atual.
TimeStamp None Depende da presença da Timestamp bandeira na TraceOutputOptions propriedade. Do TraceEventCache.
Type None Sempre presente. Sempre o valor 3.

A tabela seguinte mostra os caracteres que são escapados na saída XML. O escape ocorre em todos os elementos e atributos, exceto no DataItem elemento, que não é escapado se o objeto passado para o data parâmetro do TraceData método for um XPathNavigator objeto. Se for usado an XPathNavigator para o objeto de dados, o MoveToRoot método é chamado e todo o nó raiz é traçado como dados não escapados.

Personagem fugida Value
& &
< <
> >
" "
|'
0xD
0xA

Construtores

Name Description
XmlWriterTraceListener(Stream, String)

Inicializa uma nova instância da XmlWriterTraceListener classe com o nome especificado, usando o fluxo especificado como destinatário da saída de depuração e rastreamento.

XmlWriterTraceListener(Stream)

Inicializa uma nova instância da XmlWriterTraceListener classe, usando o fluxo especificado como destinatário da saída de depuração e rastreamento.

XmlWriterTraceListener(String, String)

Inicializa uma nova instância da XmlWriterTraceListener classe com o nome especificado, usando o ficheiro especificado como destinatário da saída de depuração e rastreamento.

XmlWriterTraceListener(String)

Inicializa uma nova instância da XmlWriterTraceListener classe, usando o ficheiro especificado como destinatário da saída de depuração e rastreamento.

XmlWriterTraceListener(TextWriter, String)

Inicializa uma nova instância da XmlWriterTraceListener classe com o nome especificado, usando o escritor especificado como destinatário da saída de depuração e rastreamento.

XmlWriterTraceListener(TextWriter)

Inicializa uma nova instância da XmlWriterTraceListener classe usando o escritor especificado como destinatário da saída de depuração e rastreamento.

Propriedades

Name Description
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)
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)
Writer

Obtém ou define o escritor de texto que recebe o resultado de rastreio ou depuração.

(Herdado de TextWriterTraceListener)

Métodos

Name Description
Close()

Fecha o Writer para este ouvinte para que já não receba saída de rastreamento ou depuração.

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)

Elimina este TextWriterTraceListener objeto.

(Herdado de TextWriterTraceListener)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fail(String, String)

Escreve informações de rastreamento, incluindo uma mensagem de erro e uma mensagem de erro detalhada para o ficheiro ou fluxo.

Fail(String)

Emite uma mensagem de erro para o ouvinte que crias quando implementas a TraceListener classe.

(Herdado de TraceListener)
Flush()

Limpa o buffer de saída para o Writer.

(Herdado de TextWriterTraceListener)
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 rastreio, um objeto de dados e informações de eventos para o ficheiro ou fluxo.

TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Escreve informações de rastreamento, objetos de dados e informações de eventos no ficheiro ou fluxo.

TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Escreve informações de rastreamento, uma mensagem formatada e informações de eventos para o ficheiro ou fluxo.

TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Escreve informações de rastreamento, uma mensagem e informações de eventos no ficheiro ou fluxo.

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ções de rastreamento, incluindo a identidade de uma atividade relacionada, uma mensagem e informações de eventos para o ficheiro ou fluxo.

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 uma mensagem literal sem qualquer informação adicional de contexto para o ficheiro ou fluxo.

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 uma mensagem literal sem qualquer informação adicional de contexto, seguida do terminador de linha atual para o ficheiro ou fluxo.

Aplica-se a