Partilhar via


Configurações recomendadas para rastreamento e registro de mensagens

Este tópico descreve as configurações recomendadas de rastreamento e registro de mensagens para diferentes ambientes operacionais.

Para um ambiente de produção, se você estiver usando fontes de rastreamento WCF, defina como switchValue Aviso. Se você estiver usando a fonte de rastreamento WCF System.ServiceModel , defina o switchValue atributo como Warning e o propagateActivity atributo como true. Se você estiver usando uma fonte de rastreamento definida pelo usuário, defina o switchValue atributo como Warning, ActivityTracing. Isso pode ser feito manualmente usando a Ferramenta do Editor de Configuração (SvcConfigEditor.exe). Caso não antecipe um impacto negativo no desempenho, pode definir o atributo switchValue para Information em todos os casos mencionados anteriormente, o que gera uma quantidade consideravelmente grande de dados de rastreamento. O exemplo a seguir demonstra essas configurações recomendadas.

<configuration>
 <system.diagnostics>
  <sources>
    <source name="System.ServiceModel"
            switchValue="Warning"
            propagateActivity="true" >
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="myUserTraceSource"
            switchValue="Warning, ActivityTracing">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="xml"
         type="System.Diagnostics.XmlWriterTraceListener"
               initializeData="C:\logs\Traces.svclog" />
  </sharedListeners>
 </system.diagnostics>

<system.serviceModel>
  <diagnostics wmiProviderEnabled="true">
  </diagnostics>
 </system.serviceModel>
</configuration>

Para o ambiente de implantação ou depuração, escolha Information ou Verbose, juntamente com ActivityTracing para uma fonte de rastreamento definida pelo usuário ou System.ServiceModel. Para aprimorar a depuração, você também deve adicionar uma fonte de rastreamento adicional (System.ServiceModel.MessageLogging) à configuração para habilitar o log de mensagens. Observe que o switchValue atributo não tem impacto nessa fonte de rastreamento.

O exemplo a seguir demonstra as configurações recomendadas, usando um ouvinte compartilhado que utiliza o XmlWriterTraceListener.

<configuration>
 <system.diagnostics>
  <sources>
    <source name="System.ServiceModel"
            switchValue="Information, ActivityTracing"
            propagateActivity="true" >
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="myUserTraceSource"
            switchValue="Information, ActivityTracing">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add name="xml"
         type="System.Diagnostics.XmlWriterTraceListener"
               initializeData="C:\logs\Traces.svclog" />
  </sharedListeners>
 </system.diagnostics>

 <system.serviceModel>
  <diagnostics wmiProviderEnabled="true">
      <messageLogging
           logEntireMessage="true"
           logMalformedMessages="true"
           logMessagesAtServiceLevel="true"
           logMessagesAtTransportLevel="true"
           maxMessagesToLog="3000"
       />
  </diagnostics>
 </system.serviceModel>
</configuration>

Usando o WMI para modificar configurações

Pode usar o WMI para alterar as definições de configuração em tempo de execução (ativando o wmiProviderEnabled atributo na configuração, como demonstrado no exemplo anterior da configuração). Por exemplo, pode usar o WMI dentro do CIM Studio para alterar os níveis da fonte de rastreio de Aviso para Informação em tempo de execução. Você deve estar ciente de que o custo de desempenho da depuração ao vivo dessa maneira pode ser muito alto. Para obter mais informações sobre como usar o WMI, consulte o tópico Usando a instrumentação de gerenciamento do Windows para diagnóstico .

Ativar eventos correlacionados no rastreamento do ASP.NET

Os eventos do ASP.NET não definem o ID de correlação (ActivityID) a menos que o rastreamento de eventos do ASP.NET esteja ativado. Para ver eventos correlacionados corretamente, você precisa ativar o rastreamento de eventos ASP.NET usando o seguinte comando no console de comando, que pode ser invocado indo para Iniciar, Executar e digitar cmd,

logman start mytrace -pf logman.providers -o test.etl -ets

Para desativar o rastreamento de eventos ASP.NET, use o seguinte comando,

logman stop mytrace -ets

Ver também