У меня есть программа, которая использует log4Net, используя как текстовые, так и smtp-приложения.Условное ведение журнала с помощью log4net
Когда программа запускает несколько протоколов, захватываются приложением smtp и буферизируются в ожидании конца программы перед отправкой почты.
Когда программа почти завершена, я могу обнаружить, что мне не нужно отправлять электронные письма, и на самом деле я записываю что-то вроде «ничего не делать».
Я знаю, что можно манипулировать по коду конфигурацией appenders, чтобы я мог подавить настройку почты Threshold to off.
Я хотел бы знать, можно ли получить тот же результат, используя только конфигурацию log4net: приложению smtp не следует отправлять электронное письмо, если конкретная строка регистрируется в любое время. Если вместо этого строка не регистрируется, она должна вести себя нормально и отправлять все строки, соответствующие указанным фильтрам.
Хорошая идея. Но я вижу, что это невозможно сделать только при настройке, мы должны разработать расширение для Log4Net. Возможно, было бы проще «войти» в список и в конце программы решить, могу ли я отбросить журнал или отправить все строки в List в метод реального журнала. –
Luca
Да, многие люди решат против кодирования некоторого расширения для log4net для этой проблемы, но тащить список строк и подталкивать его в конце - это немного запаха кода, на мой взгляд: возможно, возможно, сначала проще взгляд, но мне это не очень нравится. – samy
На самом деле, когда вы думаете об этом, буфер appender _is_ - список данных, который хранится за кулисами, поэтому я бы действительно рекомендовал его использовать. – samy