NLog,如何在记录错误或更高级别时执行代码?

问题描述 投票:0回答:2

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

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

如果可能,我该怎么办?

c# nlog
2个回答
0
投票

您想要让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


0
投票

RichTextBox的确切目的是什么?

如果要在输入错误时显示错误,则ErrorProvider更好。

如果您还想将错误日志记录也捕获到该RTB中并说出文件,那么您可以编写自己的目标,进行注册,然后它可以处理事件。

请参阅:https://github.com/NLog/NLog/wiki/Extending-NLog

© www.soinside.com 2019 - 2024. All rights reserved.