다음을 통해 공유


추적 및 메시지 로깅에 대한 권장 설정

이 항목에서는 다양한 운영 환경에 권장되는 추적 및 메시지 로깅 설정에 대해 설명합니다.

프로덕션 환경에서 WCF 추적 원본을 사용하는 경우, switchValue를 경고로 설정하십시오. WCF System.ServiceModel 추적 원본을 사용하는 경우, switchValueWarning 특성을 propagateActivity로 설정하고 true 특성을 추가하십시오. 사용자 정의 추적 원본을 사용하는 경우 특성을 switchValue.로 설정합니다Warning, ActivityTracing. 이 작업은 구성 편집기 도구(SvcConfigEditor.exe)를 사용하여 수동으로 수행할 수 있습니다. 성능 저하가 예상되지 않는 경우, 앞서 언급한 모든 사례에서 switchValue 특성을 Information로 설정하면 상당히 많은 양의 추적 데이터를 생성할 수 있습니다. 다음 예제에서는 이러한 권장 설정을 보여 줍니다.

<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>  

배포 또는 디버깅 환경에서 Information 또는 Verbose를 선택하고, 사용자 정의 추적 원본 또는 ActivityTracing 추적 원본용으로 System.ServiceModel를 선택합니다. 디버깅을 향상하려면 메시지 로깅을 사용하도록 구성에 추가 추적 원본(System.ServiceModel.MessageLogging)도 추가해야 합니다. switchValue 속성은 이 추적 원본에 영향을 미치지 않습니다.

다음 예제에서는 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>  

WMI를 사용하여 설정 수정

런타임에 구성 설정을 변경하기 위해 WMI를 사용할 수 있습니다(이전 구성 예제에 설명된 대로 구성의 wmiProviderEnabled 특성을 활성화하여). 예를 들어 CIM Studio 내에서 WMI를 사용하여 런타임에 추적 원본 수준을 경고에서 정보로 변경할 수 있습니다. 이러한 방식으로 라이브 디버깅의 성능 비용이 매우 높을 수 있다는 점에 유의해야 합니다. WMI 사용에 대한 자세한 내용은 진단용 Windows 관리 계측 사용 항목을 참조하세요.

ASP.NET 추적에서 상관 관계 이벤트 사용

ASP.NET 이벤트는 ASP.NET 이벤트 추적을 설정하지 않는 한 상관 관계 ID(ActivityID)를 설정하지 않습니다. 상호 관련된 이벤트를 제대로 보려면 명령 콘솔에서 다음 명령을 사용하여 ASP.NET 이벤트 추적을 설정해야 합니다. 이 명령은 시작, 실행cmd 입력으로 이동하여 호출할 수 있습니다.

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

ASP.NET 이벤트 추적을 해제하려면 다음 명령을 사용합니다.

logman stop mytrace -ets  

참고하십시오