<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="Threshold" value="INFO" />
<param name="File" value="sample.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" />
</layout>
</appender>
<root>
<priority value ="debug" />
<appender-ref ref="fileAppender" />
</root>
</log4j:configuration>
Log4j может быть немного запутанным.Итак, давайте попытаемся понять, что происходит в этом файле: в log4j у вас есть две основные конструкции appender и logger.
Appenders определяет, как и где что-то добавляется.Будет ли он записан в файл, на консоль, в базу данных и т. Д.?В этом случае вы указываете, что операторы журнала, направленные на fileAppender, будут помещены в файл sample.log
с использованием шаблона, указанного в тегах layout .Вы также можете легко создать приложение для консоли или базы данных.Где приложение консоли будет указывать такие вещи, как макет на экране, а приложение базы данных будет иметь сведения о соединении и имена таблиц.
Регистраторы отвечают на события регистрации, когда они всплывают.Если событие заинтересует определенный регистратор, он вызовет подключенные к нему дополнения.В приведенном ниже примере у вас есть только один регистратор - корневой регистратор, который по умолчанию отвечает на все события журналирования.В дополнение к корневому регистратору вы можете указать более конкретные регистраторы, которые отвечают на события из определенных пакетов.У этих регистраторов могут быть свои собственные добавочные файлы, указанные с помощью тегов appender-ref
, или они будут наследоваться от корневого регистратора.Использование более специфичных регистраторов позволяет вам точно настроить уровень ведения журнала для определенных пакетов или направить определенные пакеты другим приложениям.
Итак, этот файл говорит:
- Создать файлAppenderкоторый записывает в файл sample.log
- Присоедините этот appender к корневому логгеру.
- Корневой регистратор будет реагировать на любые события, по крайней мере, такие же подробные, как уровень отладки
- Приложение настроено на запись только тех событий, которые, по крайней мере, столь же детализированы, как 'info'
Выход из системы заключается в том, что если в вашем коде есть logger.debug("blah blah")
, то оно будет игнорироваться.logger.info("Blah blah");
будет выводиться в sample.log.
Фрагмент, приведенный ниже, можно добавить в файл выше с тегами log4j .Этот регистратор унаследует приложение от <root>
, но ограничит все события журналирования из пакета org.springframework
событиями, зарегистрированными на уровне info
или выше.
<!-- Example Package level Logger -->
<logger name="org.springframework">
<level value="info"/>
</logger>