NLog, как выполнить код по логированию ERROR и выше? - PullRequest
0 голосов
/ 27 апреля 2020

Я довольно новичок в NLog, и я хотел выполнить некоторый код, когда журналы сделаны.

По сути, я получил RichTextBoxTarget. RichTextBox скрыт по умолчанию. Я хочу отобразить его, когда будет сделан журнал ошибок или выше.

Как я могу это сделать, если это возможно?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Похоже, вы хотели бы, чтобы 2 цели прослушивали события:

  • RichTextBox-Target для захвата всех событий в окне ошибок.
  • MethodCall-Target для реагирования на error-events и показывают окно ошибки.

Таким образом, хитрость заключается в том, чтобы просто установить две цели:

<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>

и реализовать подходящий метод stati c для MethodCall-Target для вызова.

См. Также: https://github.com/NLog/NLog/wiki/MethodCall-target

См. Также: https://github.com/NLog/NLog/wiki/RichTextBox-target

0 голосов
/ 27 апреля 2020

Какова цель этого RichTextBox точно?

Если вы хотите показать ошибки при ошибке ввода, тогда лучше использовать ErrorProvider.

Если вы хотите захватить Регистрация ошибок также в этот RTB, а также для произнесения файла, затем вы можете написать свою собственную цель, зарегистрировать ее и затем она сможет обрабатывать события.

См .: https://github.com/NLog/NLog/wiki/Extending-NLog

...