Как фильтровать информацию в лог файлах?
создал файл log4j2, сделал генерацию 3-х файлов, в один файл записывается только error(что мне и надо), в другие файлы, записывается всё, и error и info и debug
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
<appenders>
<File name="MyFile" fileName="logs/exceptions.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="MyFile2" fileName="logs/search.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name="MyFile3" fileName="logs/input_errors.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</appenders>
<loggers>
<root level="all">
<appender-ref ref="MyFile" level="debug"/>
<appender-ref ref="MyFile2" level="info"/>
<appender-ref ref="MyFile3" level="error"/>
</root>
</loggers>
</configuration>
Ответы (1 шт):
Я думаю, чисто моё мнение что разбив логи на файлы вы столкнетесь с проблемой распознания самой проблемы. Получив ошибку на n-ом шаге вы не сможете определить шаг n-1 так как он находиться в другом файле. Разбить файлы на 3 типа дело не хитрое, попробуйте собрать их учитывая что в один и тот же момент может случиться вылетить несколько логов одновременно.
Возвращаясь к вопросу фильтрации. Чтобы фильтровать можно использовать regEx для каждой строки и возвращать только те строки которые удовлетворяют этому regex