NLog,如何在记录错误和更高级别时执行代码?
NLog, how to execute code on logging ERROR and higher?
我是 NLog 的新手,我想在日志完成后执行一些代码。
基本上,我得到了一个RichTextBoxTarget
。 RichTextBox
默认隐藏。我想在错误日志或更高版本完成时显示它。
如果可能的话,我该怎么做?
这个 RichTextBox
的目的到底是什么?
如果您想在输入错误时显示错误,那么 ErrorProvider
更适合。
如果您想将错误日志也捕获到此 RTB 以及 say 文件中,那么您可以编写自己的目标,注册它,然后它可以处理事件。
听起来您希望有 2 个目标侦听事件:
- RichTextBox-捕获错误中所有事件的目标-window.
- MethodCall-Target 用于对错误事件做出反应并显示错误-window.
所以诀窍就是设置两个目标:
<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调用。
我是 NLog 的新手,我想在日志完成后执行一些代码。
基本上,我得到了一个RichTextBoxTarget
。 RichTextBox
默认隐藏。我想在错误日志或更高版本完成时显示它。
如果可能的话,我该怎么做?
这个 RichTextBox
的目的到底是什么?
如果您想在输入错误时显示错误,那么 ErrorProvider
更适合。
如果您想将错误日志也捕获到此 RTB 以及 say 文件中,那么您可以编写自己的目标,注册它,然后它可以处理事件。
听起来您希望有 2 个目标侦听事件:
- RichTextBox-捕获错误中所有事件的目标-window.
- MethodCall-Target 用于对错误事件做出反应并显示错误-window.
所以诀窍就是设置两个目标:
<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调用。