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