5.1 Списък с филтри
Логерът ви позволява много готино да конфигурирате филтрирането на съобщения. За да направи това, той има няколко дузини филтри с всяHowви параметри. Таблицата по-долу показва най-популярните.
Филтри | Описание | |
---|---|---|
1 | BurstFilter | Позволява ви да контролирате честотата на съобщенията в секунда за дадено ниво на регистриране. |
2 | CompositeFilter | Позволява ви да зададете множество последователни филтри. |
3 | DynamicThresholdFilter | Позволява ви да активирате подробно регистриране, ако определена информация бъде намерена в регистъра. |
4 | MapFilter | Позволява ви да изградите сложен логически израз за филтъра от няколко параметъра. |
5 | MarkerFilter | Позволява ви да филтрирате съобщения по тагове, етикетът първо трябва да бъде добавен по време на регистрирането на събитията. |
6 | RegexFilter | Позволява ви да зададете маска - регулярен израз. |
7 | StructuredDataFilter | Позволява ви да филтрирате съобщенията според наличието на определени данни в тях. |
8 | ThreadContextMapFilter | Позволява ви да управлявате филтри въз основа на данни, взети от контекста на текущата нишка. |
9 | ThresholdFilter | Управлява регистрирането въз основа на нивото на регистрационните съобщения. |
10 | TimeFilter | Позволява ви да включвате и изключвате филтрите в определени часове. |
По-долу ще говорим само за три от тях. Можете да научите повече за тези филтри на официалния им уебсайт .
5.2 Филтър за време
Филтърът TimeFilter
ви позволява да включвате и изключвате филтри в определено време, има 5 параметъра:
1 | започнете | Начален час на регистриране във форматаHH:mm:ss |
2 | край | Време за излизане във форматаHH:mm:ss |
3 | часова зона | Задава часовата зона. |
4 | onMatch | Как да влезете, ако conditionто на филтъра е вярно . Може би ACCEPT , DENY or NEUTRAL . По подразбиране NEUTRAL . |
5 | onMismatch | Как да влезете, ако conditionто на филтъра е невярно . Може би ACCEPT , DENY or NEUTRAL . По подразбиране NEUTRAL . |
Нека настроим филтър, който ще включва регистриране в 5 сутринта и ще го изключва в 5:30 сутринта всеки ден. Пример с пълна конфигурация на филтъра е по-долу:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.3 RegexFilter
Филтърът RegexFilter
ви позволява да зададете маска (регулярен израз) за филтриране на съобщения. Този филтър има 4 параметъра:
1 | регулярен израз | Указва регулярен израз - маска, която се използва за филтриране на съобщения.HH:mm:ss |
2 | useRawMsg | Маската се прилага в съобщението преди форматиране (true) or след форматиране (false) |
3 | onMatch | Как да влезете, ако conditionто на филтъра е вярно . Може би ACCEPT , DENY or NEUTRAL . По подразбиране NEUTRAL . |
4 | onMismatch | Как да влезете, ако conditionто на филтъра е невярно . Може би ACCEPT , DENY or NEUTRAL . По подразбиране NEUTRAL . |
Нека настроим филтър, който ще позволява само съобщения, съдържащи думата codegym. Пример с пълна конфигурация на филтъра е по-долу:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.4 ThresholdFilter
Филтърът ThresholdFilter ви позволява да конфигурирате филтриране по ниво на съобщението. Има само 3 параметъра:
1 | ниво | Задава името на нивото на регистриране на съобщенията: ERROR , DEBUG , … |
2 | onMatch | Как да влезете, ако conditionто на филтъра е вярно . Може би ACCEPT , DENY or NEUTRAL . По подразбиране NEUTRAL . |
3 | onMismatch | Как да влезете, ако conditionто на филтъра е невярно . Може би ACCEPT , DENY or NEUTRAL . По подразбиране NEUTRAL . |
Нека настроим филтър, който ще позволява само съобщения от ниво DEBUG
. Пример с пълна конфигурация на филтъра е по-долу:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
GO TO FULL VERSION