이 항목에서는 다양한 운영 환경에 권장되는 추적 및 메시지 로깅 설정에 대해 설명합니다.
프로덕션 환경에 대한 권장 설정
프로덕션 환경에서 WCF 추적 원본을 사용하는 경우, switchValue
를 경고로 설정하십시오. WCF System.ServiceModel
추적 원본을 사용하는 경우, switchValue
및 Warning
특성을 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