我试图将所有日志消息从System.Diagnostics.Trace重定向到Common.Logging 正如Common.Logging网站记录的那样。
不幸的是,当我运行我的应用程序时,我得到了一个StackOverflowException,我不知道为什么。如果我删除<system.diagnostics>部分,它就会运行良好。
我使用一个简单的控制台应用程序复制了这个问题,它只对Trace.WriteLine("hello");进行了一次调用
以下是我完整的App.config文件:
<?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**?**的原因提出任何建议吗?
发布于 2012-10-26 07:51:17
我现在已经从这个问题开始了,但我认为CodeMonkeyKing的答案可能是准确的:
我相信你现在已经搞清楚了,但我看不出有什么答案。StackOverflowException最常见的原因之一是使用跟踪侦听器进行公共日志记录。如果您将所有. .Diag'ics.Trace重定向到Common.Logging,则可能会导致溢出,这将是合理的,这取决于您配置的日志工厂适配器。
https://stackoverflow.com/questions/6873544
复制相似问题