WCF异常日志

本文关键字:日志 异常 WCF | 更新日期: 2023-09-27 17:52:50

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

WCF异常日志

您需要启用Tracing。可以发送到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提供的最后一个链接并实现Log4netTraceListener,您应该也能够使用XYZ.exe.config解决方案。

默认情况下,WCF使用system。诊断跟踪以记录异常。请看这里,这里和这里

您可以将系统跟踪重定向到log4net,如本问题所述。