2012-11-16 8 views
7

Po włączeniu funkcji WCF Tracing w celu ułatwienia znalezienia problemu, chcę wyłączyć funkcję śledzenia. Więc zmieniłem mój plik konfiguracyjny na ten ...Wartość przełączania śledzenia WCF jest wyłączona, ale nadal jest generowane wyjście śledzenia

<system.diagnostics> 
     <sources> 
      <source name="System.ServiceModel" switchValue="Off" > 
       <!-- Information,ActivityTracing--> 
       <listeners> 
        <add name="xmlTraceListener" /> 
       </listeners> 
      </source> 
      <source name="System.ServiceModel.MessageLogging" switchValue="Off" > 
       <listeners> 
        <add name="xmlTraceListener" /> 
       </listeners> 
      </source> 
     </sources> 
     <sharedListeners> 
      <add name="xmlTraceListener" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="C:\WCFLogs\DataPortalTrace.svclog" /> 
     </sharedListeners> 
     <trace autoflush="true" /> 
    </system.diagnostics> 

Mimo to do wskazanego pliku wyjściowego nadal wysyłane są dane wyjściowe śledzenia. Dlaczego? czego mi brakuje?

Odpowiedz

13

switchValue="Off" będzie kontrolować tylko System.ServiceModel. To nie kontroluje System.ServiceModel.MessageLogging

W mojej wiedzy można kontrolować poprzez maxMessagesToLog="0" - może masz już <diagnostics> tag pod <system.serviceModel>

<diagnostics> 
     <messageLogging 
      logEntireMessage="true" 
      logMalformedMessages="true" 
      logMessagesAtServiceLevel="true" 
      logMessagesAtTransportLevel="true" 
      maxMessagesToLog="0" 
     /> 
</diagnostics> 

.NET framework for Configuring Message Logging

poziom rejestrowania, jak również dodatkowe opcje , omówiono w sekcji Logging Level and Options.

Atrybut switchValue źródła jest ważny tylko do śledzenia. Jeśli określisz atrybut switchValue dla źródła śledzenia System.ServiceModel.MessageLogging w następujący sposób, nie będzie on działał.

Kopiowanie

<source name="System.ServiceModel.MessageLogging" switchValue="Verbose"> 

Jeśli chcesz wyłączyć źródło śledzenia, należy użyć logMessagesAtServiceLevel, logMalformedMessages i logMessagesAtTransportLevel atrybuty elementu messageLogging zamiast. Powinieneś ustawić wszystkie te atrybuty na false. Można to zrobić, używając pliku konfiguracyjnego w poprzednim przykładzie kodu, interfejsu interfejsu edytora konfiguracji lub przy użyciu usługi WMI. Aby uzyskać więcej informacji o narzędziu Edytor konfiguracji, zobacz Narzędzie do edytowania konfiguracji (SvcConfigEditor.exe). Aby uzyskać więcej informacji o usłudze WMI, zobacz Korzystanie z Instrumentacji zarządzania Windows dla diagnostyki.

+1

lub po prostu być kiepskim, możesz skomentować blok hal9000

Powiązane problemy