XmlWriterTraceListener Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 |
| 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. |