2

我正在尝试将所有日志消息重定向System.Diagnostics.TraceCommon.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吗?

4

1 回答 1

0

我现在已经从这个问题上移开了,但我认为 CodeMonkeyKing 的答案可能是准确的:

我相信你现在已经弄清楚了,但我没有看到任何答案。StackOverflowException 最常见的原因之一是您将 Trace 侦听器用于 Common Logging。如果您将所有 .Diag'ics.Trace 重定向到 Common.Logging ,这将是有道理的,根据您配置的日志工厂适配器,您最终可能会出现溢出。

于 2012-10-26T07:51:17.317 回答