2010-10-21 2 views
1

Я хотел бы отфильтровать свой вывод log4net с помощью фильтров, состоящих из (порогового значения и шаблона). Поэтому я хочу разрешить журналы с шаблоном «x» только в том случае, если они являются «ERROR» уровня (или выше) и позволяют вести журналы с шаблоном «y», только если они являются «INFO» (или выше). Могу ли я сделать это в одном приложении, или мне нужны два приложения, каждый со своим собственным шаблоном и порогом шаблонов?log4net фильтр по шаблону и уровню

ответ

1

Log4net позволяет вам связывать фильтры, но это работает только как «ИЛИ». Я думаю, вы также можете сделать операцию «И», но не совсем то, что хотите. Я бы написал свой собственный фильтр, который проверяет, соответствуют ли уровень и шаблон. Затем подключите два экземпляра этого фильтра, чтобы проверить его первое условие и второе условие (операция «ИЛИ»). Не забывайте, что DenyAllFilter в конце.

Я написал собственный фильтр once, возможно, это полезно для создания фильтра.

Возможно, что два приложения могут быть обходным путем, но если вы хотите войти в файл, у вас есть проблемы с блокировкой, которые могут быть устранены (с ограничением производительности).

0

Вы должны взглянуть на людей, просящих И и ИЛИ фильтры: Log4Net filters "OR"

Насколько я знаю, нет ничего реализован еще, но в случае, если вы действительно нуждаетесь в этом вы могли бы сделать трюк подклассов FilterSkeleton сам.