Я использую log4net api для входа в мое приложение WinForms. У меня есть несколько приложений: RollingFileAppender и TextBoxAppender (пользовательский appender).log4net сообщения журнала только для нескольких добавок
Я хочу регистрировать некоторые сообщения об ошибках только в файле журнала (RollingFileAppender), а не в текстовом поле (TextBoxAppender) и некоторых других сообщениях для обоих. Как я могу это достичь? Обратите внимание, что сообщения имеют одинаковый уровень, то есть все сообщения ERROR.
Спасибо.
EDIT 1:
В частности, я хочу, чтобы отобразить простые сообщения на одну строку ошибка в интерфейсе, а также файл журнала, но StackTraces только в файле журнала.
Хотя вы * можете * сделать это только с одним регистратором (через подходящее применение F ilters), это идет против зерна log4net. То, что вы обычно хотите сделать, это использовать отдельные регистраторы для каждой конфигурации и добавлять соответствующие приложения к этим регистраторам ('FileLogger',' UILogger', 'UniversalLogger', что-то вроде этого). Обратите внимание, что регистраторы могут делиться приложением. –
Даже если я должен использовать отдельные регистраторы, как я могу фильтровать сообщения одного уровня, например, некоторые сообщения ERROR уровня журнала, которые будут отображаться в UILogger, и некоторые сообщения одного и того же ERROR уровня журнала, НЕ будут показаны. В основном, то, что вы предлагаете, заключается в том, что для каждого места мне может потребоваться вызвать оба регистратора по мере необходимости, например logger1.Error() и logger2.Error() – AllSolutions
Использование нескольких экземпляров регистратора может быть прекрасным, когда я хочу отправить сообщение журнала только для 1 адресата, но для большинства случаев требуются сообщения, отправляемые в BOTH регистраторам – AllSolutions