log4j2 учебник
Начало работы с log4j2
Поиск…
замечания
В этом разделе представлен обзор того, что такое log4j2, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в log4j2 и ссылаться на связанные темы. Поскольку документация для log4j2 является новой, вам может потребоваться создать начальные версии этих связанных тем.
Почему не Log4j 1.x?
Log4j 1.x - это конец жизни с 5 августа 2015 года. [1] [2]. Apache Log4j 2 является преемником Log4j 1.x; предоставляет привязки для проектов, которые зависят от Log4j 1.x, но хотят перейти на Log4j 2. В дополнение к совместимости с Log4j 1.x совместимость обеспечивается для API SLF4J, Commons Logging и java.util.logging API.
[1] https://logging.apache.org/log4j/1.2/
[2] https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces
Установка или настройка
Это будет базовая настройка, в которой мы отправим все сообщения журнала на консоль и в файл журнала.
Начнем с библиотек. Будет использовать maven для этого:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
Затем мы напишем log4j2.properties (в этом случае я буду использовать файл свойств). Мы поместим его в контекстный путь, в maven он должен находиться в папке ресурсов (src / main / resources в большинстве случаев)
name=PropertiesConfig
property.filename = logs
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/propertieslogs.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
loggers=file
logger.file.name=com.es.form.studio
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
Чтобы использовать этот пример, вам нужно будет изменить logger.file.name = com.es.form.studio, чтобы он нацелился на пакет по вашему выбору. Если вы этого не сделаете, файл не будет показывать никаких журналов.