2

Common.Logging Web サイトに記載されているように、すべてのログ メッセージを から にリダイレクトしようとしてSystem.Diagnostics.Traceいます。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 の最も一般的な原因の 1 つは、共通ログのトレース リスナーを使用している場合です。すべての .Diag'ics.Trace を Common.Logging にリダイレクトすると、構成したログ ファクトリ アダプターによってはオーバーフローが発生する可能性があることは理にかなっています。

于 2012-10-26T07:51:17.317 に答える