XmlWriterTraceListener 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.
Direciona a saída de rastreamento ou depuração como dados codificados em XML para um ou para um TextWriterStream, 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 exemplo de código a seguir mostra o uso da XmlWriterTraceListener classe para gravar dados escapados e não escapados em logs de arquivos.
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
Comentários
Observação
Você deve ter permissão de código não gerenciada para criar uma instância da XmlWriterTraceListener classe.
A XmlWriterTraceListener classe converte informações de rastreamento e depuração em um fluxo de texto codificado em XML. A descrição da saída XML é mostrada nas tabelas a seguir. Você pode usar a Ferramenta visualizador de rastreamento de serviço (SvcTraceViewer.exe) para exibir a saída XML.
Você pode criar um XmlWriterTraceListener código em seu código. Como alternativa, para aplicativos do .NET Framework, você pode habilitar ou desabilitar um XmlWriterTraceListener por meio do arquivo de configuração do aplicativo e, em seguida, usar o configurado XmlWriterTraceListener em seu aplicativo. Para configurar um XmlWriterTraceListenerarquivo de configuração, edite o arquivo de configuração que corresponde ao nome do aplicativo. Neste arquivo, você pode adicionar ou remover um ouvinte, definir as propriedades de um ouvinte ou remover ouvintes. O arquivo de configuração deve ser formatado como o exemplo a seguir.
<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 rastreamento no ouvinte. Se houver um filtro presente, os Trace métodos do ouvinte de rastreamento chamarão o ShouldTrace método do filtro para determinar se o rastreamento deve ser emitido.
Observação
Se for feita uma tentativa de gravar em um arquivo que esteja em uso ou indisponível, o nome do arquivo será automaticamente prefixado por um GUID.
Observação
Os métodos de ouvinte devem ser chamados por métodos do Debug, Tracee TraceSource classes. Os métodos de ouvinte não devem ser chamados diretamente do código do aplicativo. O XmlWriterTraceListener ouvinte destina-se principalmente ao uso pela TraceSource classe. Os Write métodos e os WriteLineTrace métodos podem ser chamados pelas classes e Debug os valores padrão são fornecidos para os elementos XML para os quais Trace e Debug não fornecem valores.
A tabela a seguir descreve os elementos e atributos da saída XML.
| Elemento | Atributos | Saída | Observações |
|---|---|---|---|
CallStack |
Nenhum | Depende da presença do Callstack sinalizador na TraceOutputOptions propriedade. | Caracteres especiais como > ou < são substituídos por sequências de escape. Veja a tabela de conversão de caracteres com escape a seguir. |
Computer |
Nenhum | Sempre presente. | O valor da MachineName propriedade. |
Correlation |
ActivityID |
Sempre presente | Se não for especificado, o padrão será 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 |
Nenhum | Depende do data parâmetro do TraceData método. |
Esse elemento pode conter uma matriz de elementos ou um elemento, de modo que os valores sejam gravados como um conjunto de DataItem nós sob o TraceData elemento.A saída de dados usa o ToString método dos objetos de dados passados. |
EventID |
Nenhum | Sempre presente. | Entrada de parâmetro (id). |
Execution |
ProcessName |
Sempre presente. | TraceEventCacheDo . |
ProcessID |
Sempre presente. | TraceEventCacheDo . | |
ThreadID |
Sempre presente. | TraceEventCacheDo . | |
Level |
Nenhum | Sempre presente. | Entrada de parâmetro (o valor numérico de eventType). Valores de parâmetro maiores que 255 são saída como 255. |
LogicalOperationStack |
Nenhum | Depende da presença do LogicalOperationStack sinalizador na TraceOutputOptions propriedade. | Pode haver mais de uma operação lógica, de modo que os valores sejam gravados como LogicalOperation nós no LogicalOperationStack elemento. |
Message |
Nenhum | Depende da presença de uma mensagem na chamada do método Trace. | Esse elemento será uma mensagem formatada se forem fornecidos argumentos de formatação. |
Source |
Name |
Sempre presente. | Entrada de parâmetro. |
SubType |
Name |
Sempre presente. | Entrada de parâmetro. |
TimeCreated |
SystemTime |
Sempre presente. | Se não estiver presente no TraceEventCache, o padrão é a hora atual. |
TimeStamp |
Nenhum | Depende da presença do Timestamp sinalizador na TraceOutputOptions propriedade. | TraceEventCacheDo . |
Type |
Nenhum | Sempre presente. | Sempre o valor 3. |
A tabela a seguir mostra os caracteres que são escapados na saída XML. O escape ocorre em todos os elementos e atributos com exceção do DataItem elemento, que não é escapado se o objeto passado para o data parâmetro do TraceData método for um XPathNavigator objeto. Se um XPathNavigator for usado para o objeto de dados, o MoveToRoot método será chamado e todo o nó raiz será rastreado como dados sem escape.
| Caractere de escape | Valor |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| |' | |
| 0xD | |
| 0xA |
Construtores
| Nome | Description |
|---|---|
| XmlWriterTraceListener(Stream, String) |
Inicializa uma nova instância da XmlWriterTraceListener classe com o nome especificado, usando o fluxo especificado como o 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 o 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 arquivo especificado como o destinatário da saída de depuração e rastreamento. |
| XmlWriterTraceListener(String) |
Inicializa uma nova instância da XmlWriterTraceListener classe, usando o arquivo especificado como o 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 gravador especificado como o destinatário da saída de depuração e rastreamento. |
| XmlWriterTraceListener(TextWriter) |
Inicializa uma nova instância da XmlWriterTraceListener classe usando o gravador especificado como o destinatário da saída de depuração e rastreamento. |
Propriedades
| Nome | Description |
|---|---|
| Attributes |
Obtém os atributos do ouvinte de rastreamento personalizado definidos no arquivo de configuração do 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) |
| Name |
Obtém ou define um nome para isso TraceListener. (Herdado de TraceListener) |
| NeedIndent |
Obtém ou define um valor que indica se deve recuar a saída. (Herdado de TraceListener) |
| TraceOutputOptions |
Obtém ou define as opções de saída de rastreamento. (Herdado de TraceListener) |
| Writer |
Obtém ou define o gravador de texto que recebe a saída de rastreamento ou depuração. (Herdado de TextWriterTraceListener) |
Métodos
| Nome | Description |
|---|---|
| Close() |
Fecha o Writer para esse ouvinte para que ele não receba mais a saída de rastreamento ou depuração. |
| 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) |
Descarta esse TextWriterTraceListener objeto. (Herdado de TextWriterTraceListener) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Fail(String, String) |
Grava informações de rastreamento, incluindo uma mensagem de erro e uma mensagem de erro detalhada no arquivo ou fluxo. |
| Fail(String) |
Emite uma mensagem de erro para o ouvinte que você cria ao implementar a TraceListener classe. (Herdado de TraceListener) |
| Flush() |
Libera o buffer de saída para o Writer. (Herdado de TextWriterTraceListener) |
| 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 tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
| GetSupportedAttributes() |
Obtém os atributos personalizados compatíveis com o 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 dessa instância. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Grava informações de rastreamento, um objeto de dados e informações de evento no arquivo ou fluxo. |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Grava informações de rastreamento, objetos de dados e informações de evento no arquivo ou fluxo. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Grava informações de rastreamento, uma mensagem formatada e informações de evento no arquivo ou fluxo. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Grava informações de rastreamento, uma mensagem e informações de evento no arquivo ou fluxo. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Grava informações de rastreamento e evento na saída específica do ouvinte. (Herdado de TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Grava informações de rastreamento, incluindo a identidade de uma atividade relacionada, uma mensagem e informações de evento no arquivo ou fluxo. |
| Write(Object, String) |
Grava um nome de categoria e o valor do método do ToString() objeto no ouvinte que você cria ao implementar a TraceListener classe. (Herdado de TraceListener) |
| Write(Object) |
Grava o valor do método do ToString() objeto no ouvinte que você cria ao implementar a TraceListener classe. (Herdado de TraceListener) |
| Write(String, String) |
Grava um nome de categoria e uma mensagem no ouvinte que você cria ao implementar a TraceListener classe. (Herdado de TraceListener) |
| Write(String) |
Grava uma mensagem verbatim sem nenhuma informação de contexto adicional no arquivo ou fluxo. |
| WriteIndent() |
Grava o recuo no ouvinte que você cria ao implementar essa classe e redefine a NeedIndent propriedade para |
| WriteLine(Object, String) |
Grava um nome de categoria e o valor do método do ToString() objeto no ouvinte que você cria quando implementa a TraceListener classe, seguido por um terminador de linha. (Herdado de TraceListener) |
| WriteLine(Object) |
Grava o valor do método do ToString() objeto no ouvinte que você cria quando implementa a TraceListener classe, seguido por um terminador de linha. (Herdado de TraceListener) |
| WriteLine(String, String) |
Grava um nome de categoria e uma mensagem para o ouvinte que você cria ao implementar a TraceListener classe, seguido por um terminador de linha. (Herdado de TraceListener) |
| WriteLine(String) |
Grava uma mensagem verbatim sem informações de contexto adicionais seguidas pelo terminador de linha atual no arquivo ou fluxo. |