Я хочу записать все уровни логгера в файл (FATAL-> ALL) и одновременно показать уровень ОШИБКИ и выше в консоли.Я использую root logger для записи всех уровней в файл и отдельный logger для записи уровня ERROR на консоль.Мой XML-файл конфигурации выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{HH:mm:ss.SSS} [%t] %highlight{%level}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=blue} %logger{36} - %msg%n" disableAnsi="false"/>
</Console>
<File name="File" fileName="output.log" bufferedIO="true" >
<PatternLayout
pattern="%d{HH:mm:ss.SSS} [%t] %highlight{%level}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=blue} %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="ALL">
<AppenderRef ref="File"/>
</Root>
<Logger name="com.danielk" level="ERROR">
<AppenderRef ref="Console"/>
</Logger>
</Loggers>
</Configuration>
Я ожидал, что в файле будут все уровни ведения журнала и только уровень «Ошибка» и выше, но у меня есть только уровни «Ошибка» на обоих (консоль и файл):
23: 19: 54.422 [main] ОШИБКА com.danielk.Example - ошибка с ошибкой в примере 23: 19: 54.434 [main] ОШИБКА com.danielk.Main - ОШИБКАERROR ERROR FROM MAIN
Сами сообщения построены правильно, потому что, когда я устанавливаю оба регистратора (Root и дополнительные) на уровень «ALL», я вижу все виды сообщений (не только уровень «Error»).
Что нужно сделать, чтобы разделить уровни:
- Файл - все уровни
- Консоль - только ошибки и выше?