WCF跟踪记录除System.Exception本身之外的所有异常

时间:2013-05-13 00:54:05

标签: wcf

我已经创建了一个基本的WCF服务库,并创建了一个名为GetResult()的方法。我已经设置了WCF跟踪日志记录以将警告记录到文件中。这是正确记录抛出之外的所有异常,出于某种奇怪的原因,System.Exception本身。例如,这个记录很好:

[OperationContract]
public string GetResult()
{
    // exception is logged in file:
    throw new DivideByZeroException();
    // or
    // throw new ApplicationException();
    // or
    // throw new FileNotFoundException();
    // or anything else, it seems
}

但这不会记录任何内容:

[OperationContract]
public string GetResult()
{
    // exception is not logged!
    throw new Exception();
    // or
    // throw new Exception("my message");
}

在后一种情况下,甚至不会创建日志文件。如果它已经存在则不会被写入。

我做错了什么?

这是我的app.config设置:

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel.MessageLogging" switchValue="Warning">
            <listeners>
                <add name="ServiceModelTraceListener" />
            </listeners>
        </source>
        <source name="System.ServiceModel" switchValue="Warning">
            <listeners>
                <add name="ServiceModelTraceListener" />
            </listeners>
        </source>
        <source name="System.Runtime.Serialization" switchValue="Warning">
            <listeners>
                <add name="ServiceModelTraceListener" />
            </listeners>
        </source>
    </sources>
<trace autoflush="true" />
    <sharedListeners>
        <add initializeData="c:\temp\logs\wcf.svclog" 
       type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
       name="ServiceModelTraceListener" 
       traceOutputOptions="Timestamp" />
    </sharedListeners>
</system.diagnostics>

0 个答案:

没有答案