簡體   English   中英

NLog,如何在記錄 ERROR 及更高版本時執行代碼?

[英]NLog, how to execute code on logging ERROR and higher?

我對 NLog 很陌生,我想在日志完成后執行一些代碼。

基本上,我有一個RichTextBoxTarget RichTextBox默認是隱藏的。 我想在錯誤日志或更高版本完成時顯示它。

如果可能的話,我怎么能做到這一點?

這個RichTextBox的目的到底是什么?

如果您想在輸入錯誤時顯示錯誤,那么ErrorProvider會更好。

如果您想將錯誤記錄也捕獲到此 RTB 中以及說文件中,那么您可以編寫自己的目標,注冊它,然后它可以處理事件。

參見: https://github.com/NLog/NLog/wiki/Extending-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 調用一個合適的 static 方法。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM