База данных Appender
Spring использует Logback в качестве базовой структуры журнала.
Вы можете создать файл logback-spring.xml
в src/resources
и затем настроить регистратор. По умолчанию есть приложение FILE, и вы можете добавить приложение DATABASE
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<springProperty name="spring.datasource.driverClassName" source="spring.datasource.driverClassName"/>
<springProperty name="spring.datasource.url" source="spring.datasource.url"/>
<springProperty name="spring.datasource.username" source="spring.datasource.username"/>
<springProperty name="spring.datasource.password" source="spring.datasource.password"/>
<appender name="DATABASE" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>${spring.datasource.driverClassName}</driverClass>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</connectionSource>
</appender>
<logger name="AUDIT" level="INFO">
<appender-ref ref="FILE"/>
<appender-ref ref="DATABASE"/>
</logger>
</configuration>
Дополнительная информация
Вы можете использовать сопоставленный диагностический контекст (MDC) для хранения глобальной информации, которую вы хотите добавить к каждой записи журнала:
MDC.put("username", SecurityContextHolder.getContext().getAuthentication().getName());
Чтобы иметь его в выводе, вы должны добавить его в шаблон журнала. Например:
<Pattern>%X{username} - %m%n</Pattern>
Дополнительная литература
Рекомендую прочитать руководство по выходу из системы, чтобы получить больше информации об appenders и MDC:
https://logback.qos.ch/manual/mdc.html