2011-07-29 2 views
2

모든 로그 메시지를 System.Diagnostics.Trace에서 Common.Loggingas documented on the Common.Logging website으로 리디렉션하려고합니다.Common.Logging 및 Common.Logging.Simple.CommonLoggingTraceListener가있는 StackOverflowException

불행히도 내 응용 프로그램을 실행할 때 StackOverflowException이 발생하고 이유가 확실하지 않습니다. <system.diagnostics> 섹션을 삭제하면 올바르게 실행됩니다.

나는

여기 내 전체 App.config 파일의 Trace.WriteLine("hello");에 대한 단일 호출 만드는 간단한 콘솔 응용 프로그램을 사용하여이 문제를 복제 한 : 원인이 무엇에 관한

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.diagnostics> 
    <trace> 
     <listeners> 
     <clear /> 
     <add name="commonLoggingListener" 
      type="Common.Logging.Simple.CommonLoggingTraceListener, Common.Logging" 
      initializeData="LogLevel=Trace" /> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

사람이 어떤 제안을 할 수 있습니다 StackOverflowException?

+1

나는 지금 당장이 사실을 알았지 만 답변을 찾지 못했다고 확신합니다. StackOverflowException의 가장 일반적인 원인 중 하나는 Common Logging에 Trace 리스너를 사용하는 경우입니다. 모든 .Diag'ics.Trace를 Common.Logging으로 리디렉션하면 구성한 로깅 팩토리 어댑터에 따라 오버플로가 발생할 수 있습니다. – CodeMonkeyKing

답변

0

지금은이 문제에서에 이동했습니다,하지만 난 CodeMonkeyKing의 대답은 아마 정확한 생각 :

내가 지금 당신이 알아 냈어요 확신하지만 난하지 않습니다 대답은 입니다. Common Logging에 대해 Trace Listener를 사용하는 경우 StackOverflowException의 가장 일반적인 원인 중 하나는 입니다. 은 .Diag'ics.Trace를 모두 Common.Logging으로 리디렉션하면 에 따라 오버플로가 발생할 수 있다는 의미가됩니다.