WCF异常日志记录

Eds*_*Eds 5 .net c# wcf

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

toA*_*ork 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>
Run Code Online (Sandbox Code Playgroud)

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

编辑

我只是意识到您在谈论log4net。不是NLog。

如果您遵循StephaneT提供的最后一个链接并实施,则Log4netTraceListener您也应该能够使用XYZ.exe.config解决方案。

  • *我*正在寻找WCF异常的NLog日志记录,谢谢! (2认同)

sto*_*eur 3

默认情况下,WCF 使用 system.diagnostics 跟踪来记录异常。请参阅此处此处此处

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