首页 > 解决方案 > NLog,如何在记录 ERROR 及更高版本时执行代码?

问题描述

我对 NLog 很陌生,我想在日志完成后执行一些代码。

基本上,我得到了一个RichTextBoxTarget. RichTextBox默认情况下是隐藏的。我想在错误日志或更高版本完成时显示它。

如果可能的话,我怎么能这样做?

标签: c#nlog

解决方案


听起来你想让 2 个目标监听事件:

  • RichTextBox-Target 用于捕获错误窗口中的所有事件。
  • MethodCall-Target 用于对错误事件做出反应并显示错误窗口。

所以诀窍就是设置两个目标:

<nlog>
    <targets>
        <target name="richtext" xsi:type="RichTextBox" />
        <target name="showrichtext" xsi:type="MethodCall" className="SomeNamespace.MyClass, MyAssembly" methodName="LogMethod" />
    </targets>

    <rules>
        <logger name="*" minlevel="Debug" writeTo="richtext" />
        <logger name="*" minlevel="Error" writeTo="showrichtext" />
    </rules>
</nlog>

并实现一个合适的静态方法供 MethodCall-Target 调用。

另见:https ://github.com/NLog/NLog/wiki/MethodCall-target

另见:https ://github.com/NLog/NLog/wiki/RichTextBox-target


推荐阅读