Log4net SMTP appender включает предыдущие записи журнала, когда происходит совпадение строк

Я пытаюсь создать конфигурацию SMTP appender для log4net, которая отправит электронное письмо с предыдущими записями журнала, когда произойдет конкретное совпадение строк. Вариант использования - это процесс, который работает каждый день. У меня есть SMTPAppender, который следит за ошибками и работает отлично. Но я хочу, чтобы другой SMTP-приставщик следил за сообщением "Успех программы", когда программа заканчивает работу и отправляет электронное письмо нашему парню ops со всеми записями журнала для запуска, как это:

1/1/2014 4:00 PM - Program started 1/1/2014 4:01 PM - Program Running 1/1/2014 4:02 PM - Program still running 1/1/2014 4:03 PM - Program success

Вот своего рода шаблон, который у меня есть для приложения

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> <to value="[removed_email]"> <from value="[removed_email]"> <subject value="Program has run successfully"> <smtphost value="mailserver.com"> <username value=""> <password value=""> <buffersize value="512"> <lossy value="false"> <evaluator type="log4net.Core.???"> What goes here? </evaluator> <layout type="log4net.Layout.PatternLayout"> <conversionpattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline"> </conversionpattern></layout>
</lossy></buffersize></password></username></smtphost></subject></from></to></appender>
1 ответ

Казалось бы, создание вашей собственной реализации ITriggeringEventEvaluator - это путь. Затем вы можете заставить IsTriggeringEvent возвращать значение true, если переданное свойство LoggingEvent RenderedMessage содержит целевую строку.

licensed under cc by-sa 3.0 with attribution.