2017-09-18 13 views
2

webservice에서 오류 로깅을 구현하기 위해 Microsoft.ServiceModel.Samples.CircularTracecListener 바이너리를 사용하고 있습니다.C# 원형 트레이스 리스너가 파일을 롤백하지 않습니다.

maxFileSizeKB에 도달 할 때까지 파일에 쓰고 보조 파일로 롤백해야합니다. 이 프로세스는 낮은 파일 크기 제한으로 테스트하고 롤링이 짧은 시간에 발생할 때 잘 작동합니다.

이상한 점은 maxFileSizeKB를 설정할 때 다음 날에 로거가 주 파일을 오버레이하고 보조 입력을 남겨 두었다는 것입니다.

web.config 파일 설정은 다음과 같이

<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel" switchValue="Information,ActivityTracing" > 
    <listeners> 
     <add name="CircularTraceListener" /> 
    </listeners> 
    </source> 
</sources> 
<sharedListeners> 
    <add name="CircularTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener" 
     initializeData="c:\log\webserviceLog.xml" maxFileSizeKB="5120" /> 
</sharedListeners> 
<trace autoflush="true" /> 

누군가가 유사한 문제가 발생 했습니까?

저는 웹 서비스를 재부팅하고 첫 번째 파일로 시작하는 것으로 생각할 수 있습니다.

응용 프로그램 풀 재활용 수 있습니까?

iis 로그를 검사 할 때 내 로그 파일이 지워지는 동시에 응용 프로그램 풀이 recicle된다는 것을 알 수 있습니다.

답변

2

Microsoft.ServiceModel.Samples.CircularTraceListener 코드 샘플은 maxFileSizeKB 설정을 한 번 읽습니다. 해당 설정의 변경 사항이 적용 되려면 호스팅 프로세스를 다시 시작해야합니다.

편집 :

당신의 Web.config를 편집, IIS 응용 프로그램 풀은 기본적으로 자동 재생 얻을 것이다.

IIS 응용 프로그램 풀이 재활용되면 주 파일 (webserviceLog00.xml)을 덮어 씁니다.

"응용 프로그램 풀> 고급 설정 ...> 구성 변경에 대한 재활용 비활성화"를 true로 설정하여 응용 프로그램 풀이 다시 시작되지 않도록 할 수 있습니다.

+0

maxFileSizeKB의 내용을 확인하고 다시 시작하지 않고 서비스를 업데이트하고 있습니다. – ManuelCh

+1

예, IIS 응용 프로그램 풀이 재활용되면 주 파일 (webserviceLog00.xml)을 덮어 씁니다. web.config를 편집하면 기본적으로 IIS 응용 프로그램이 자동으로 재활용됩니다. "응용 프로그램 풀> 고급 설정 ...> 재사용> 구성 변경에 대한 재활용 비활성화"를 true로 설정하여 변경할 수 있습니다. –