Этот сайт говорит
Регистраторам могут быть назначены уровни. Уровни являются экземплярами класса log4net.Core.Level. Следующие уровни определены в порядке возрастания приоритета :
- ВСЕ
- ОТЛАЖИВАТЬ
- ИНФОРМАЦИЯ
- WARN
- ОШИБКА
- FATAL
- OFF
DEBUG имеет самый низкий приоритет, а ERROR - выше.
Вопрос
- Если я установил Min и Max example DEBUG и ERROR, он распечатает все DEBUG, INFO, WARN и ERROR. Без использования минимального и максимального фильтров. Если я укажу ERROR (уровень ведения журнала = ERROR) Будет ли он включать DEBUG, INFO & WARN
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
Вместо фильтра min и max. Можно ли настроить уровень и включить все остальные уровни ниже для ведения журнала.
Пример - Установите уровень как Ошибка, он будет включать ОТЛАДКУ, ИНФОРМАЦИЮ, ПРЕДУПРЕЖДЕНИЕ и ОШИБКУ. Возможно ли это с log4net?
Публикация конфигурации log4net на основе одного из комментариев:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections >
<log4net debug="true">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<layout type="log4net.Layout.XMLLayout" /> -->
<param name="File" value="TestLog.log" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value="[START LOG] %newline" />
<footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<logger name="log4NetExample">
<!-- <appender-ref ref="B" /> -->
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
levelMax
? Я думаю , что это должно включать в себя все , что ниже его , если вы не укажетеlevelMin
Ответы:
Это может помочь понять, что записывается, на каком уровне Регистраторам могут быть назначены уровни. Уровни являются экземплярами класса log4net.Core.Level. Следующие уровни определены в порядке возрастания серьезности - Уровень журнала.
Количество уровней, записанных для каждого уровня настройки:
источник
Для большинства приложений вы хотите установить минимальный уровень, но не максимальный.
Например, при отладке кода установите минимальный уровень DEBUG, а в производственной среде - WARN.
источник
<level value="ALL" />
на,<level value="WARN" />
и вы получите только предупреждения и ошибки.DEBUG покажет все сообщения, INFO - все, кроме сообщений DEBUG, и так далее.
Обычно используется либо ИНФОРМАЦИЯ, либо ПРЕДУПРЕЖДЕНИЕ. Это зависит от политики компании.
источник
Вот код, говорящий о приоритете всех уровней log4net:
источник
Как отмечали другие, обычно предпочтительнее указать минимальный уровень ведения журнала, чтобы регистрировать этот уровень и любые другие, более серьезные, чем он. Похоже, вы просто думаете об уровнях ведения журнала задом наперед.
Однако, если вы хотите более детально контролировать ведение журнала отдельных уровней, вы можете указать log4net регистрировать только один или несколько определенных уровней, используя следующий синтаксис:
Или исключить определенный уровень ведения журнала, добавив в фильтр узел «запретить».
Вы можете складывать несколько фильтров вместе, чтобы указать несколько уровней. Например, если вам нужны только уровни WARN и FATAL. Если уровни, которые вы хотели, были последовательными, то LevelRangeFilter более подходит.
Справочный документ: log4net.Filter.LevelMatchFilter
Если другие ответы не дали вам достаточно информации, надеюсь, это поможет вам получить то, что вы хотите от log4net.
источник
by adding a "deny" node to the filter
как?Официальная документация ( Руководство Apache log4net ™ - Введение ) действительно утверждает, что существуют следующие уровни ...
... но как ни странно, когда я просматриваю сборку log4net.dll, v1.2.15.0 запечатанный класс log4net.Core.Level, я вижу следующие определенные уровни ...
Я давно использую TRACE вместе с PostSharp OnBoundaryEntry и OnBoundaryExit. Интересно, почему этих других уровней нет в документации. Кроме того, каков истинный приоритет всех этих уровней?
источник
Попробуйте вот так, у меня это сработало
Это регистрирует 3 типа ошибок - ошибка, информация и предупреждение.
источник