WCF异常日志记录

时间:2014-03-24 13:13:39

标签: c# .net wcf

是否可以从我的WCF服务中记录ThrowMaxReceivedMessageSizeExceeded等异常。我知道可以在配置中增加消息大小,但我也希望它能在我这边登录。我运行Log4Net以捕获所有未处理的异常,但似乎没有记录,所以可能会处理。

2 个答案:

答案 0 :(得分:5)

您需要启用跟踪。这可以发送到Nlog。我的XYZ.exe.config有一个看起来像这样的部分:

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Error" propagateActivity="true" >
            <listeners>
                <add name="nlog"/>
            </listeners>
        </source>
        <!--source name="System.ServiceModel.MessageLogging">
            <listeners>
                <add name="nlog" />
            </listeners>
        </source-->
    </sources>
    <sharedListeners>
        <add name="nlog" type="NLog.NLogTraceListener, NLog" />
    </sharedListeners>
</system.diagnostics>

注意: 我也在XYZ.exe.config中有NLog配置!

修改

我刚才意识到你在谈论log4net。不是NLog。

如果您按照StephaneT提供的最后link并实施Log4netTraceListener,您也应该能够使用XYZ.exe.config解决方案。

答案 1 :(得分:3)

默认情况下,WCF使用system.diagnostics跟踪来记录异常。 请参阅herehere以及here

您可以按照this问题中的说明将系统跟踪重定向到log4net。