🏆Эта статья включена в 《Spring Загрузка из входа в мастер》 ,Улучшение индекса специализированной атаки
Эта колонка посвящена созданию самой сложной серии обучающего контента Spring Boot от нулевого уровня до продвинутого уровня. 🚀Все они запускаются исключительно во всей сети для создания качественных колонок... Колонка постоянно обновляется... Добро пожаловать всем. подписывайтесь и продолжайте учиться.
Описание среды: Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
Log4j2 — это платформа ведения журналов Apache Software Foundation. Это обновленная версия Log4j. По сравнению с Log4j он значительно улучшен в производительности и функциональности. Сам Spring Boot по умолчанию интегрировал Logback в качестве платформы ведения журналов, но если вам нужно использовать Log4j2 для замены Logback, вам нужно всего лишь выполнить простую настройку.
В этой статье в основном рассказывается, как Spring Boot интегрирует Log4j2 и соответствующие методы настройки.
В этой статье будет показано, как Spring Boot интегрирует Log4j2 со следующих аспектов:
Прежде чем использовать Log4j2, давайте сначала разберемся с основными концепциями Log4j2.
Добавьте следующие зависимости в файл pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
Первая зависимость — это начальная зависимость Spring Boot, а вторая зависимость — это начальная зависимость Log4j2.
Следует отметить, что, поскольку сам Spring Boot по умолчанию использует Logback в качестве среды ведения журнала, Spring-boot-starter-logging необходимо исключить при добавлении зависимостей Log4j2.
Создайте файл log4j2.xml в каталоге src/main/resources и добавьте информацию о конфигурации Log4j2.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH-mm-ss}-%i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.example" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Logger>
<Root level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
В файле конфигурации определены два Appender, один Console и один RollingFile, а также указаны их форматы вывода и стратегии вывода.
Регистратор с именем com.example определен в Loggers, его уровень журнала установлен на отладку, а его выходной Appender установлен на Console и RollingFile. В то же время Root также устанавливает выходной Appender на Console и RollingFile и устанавливает уровень журнала на ошибку. Root является родительским элементом Logger. Если Logger специально не устанавливает выходной Appender, будет использоваться выходной Appender.
Пример конфигурации выглядит следующим образом:
В Spring Boot вы можете использовать аннотации для записи журналов. Добавив аннотацию @Log4j2 к классу, для класса можно автоматически создать объект Logger.
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
@Service
@Log4j2
public class UserService {
public void addUser(String username, String password) {
log.info("Add user, username: {}, password: {}", username, password);
}
public void updateUser(String username, String password) {
log.info("Update user, username: {}, password: {}", username, password);
}
public void deleteUser(String username) {
log.info("Delete user, username: {}", username);
}
}
В приведенном выше коде аннотация @Log4j2, предоставленная Lombok, используется для автоматического создания объекта Logger с именем log. Соответствующая информация журнала записывается через объект журнала в методе класса.
В этой статье рассказывается, как Spring Boot интегрирует Log4j2 и соответствующие методы настройки.
первый,Должно быть в файле pom.xml. Затем добавьте зависимость Log4j2;,Создайте файл конфигурации log4j2.xml в пути к классам.,И наконец определите соответствующие Appender и Logger;,Используйте аннотацию @Log4j2 в классе для создания объекта Logger.,И используйте объект журнала для записи информации журнала.
Благодаря введению этой статьи,Я думаю, читатели уже понимают, как использовать Log4j2 для замены Logback.,И вы можете быстро начать работу с Ведением журнала с использованием Log4j2.