Описание среды: Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
Журналы являются очень важной частью разработки. С помощью журналов мы можем устранять различные проблемы и оптимизировать программы. Весна Boot — очень популярная и удобная платформа, а Logback — очень зрелая и стабильная среда ведения журналов. В этой статье мы покажем, как использовать Spring Boot интегрирует Logback для реализации Сохранять файлы журналов локально。
В этой статье будет описан способ использования Spring Загрузка и вход в Способы достижения Сохранять файлы журналов локально, сначала познакомьтесь с базовыми знаниями и использованием платформы Logback, а затем познакомьтесь с тем, как объединить Logback и Spring. Boot интегрирован и, наконец, демонстрирует, как использовать Logback для записи журналов и сохранения их в локальных файлах.
Logback — это зрелая и стабильная платформа ведения журналов, преемница платформы Log4j, с лучшей производительностью и более широкими возможностями конфигурации. Его можно интегрировать с инфраструктурой Spring Boot для вывода журналов на консоль или в файл.
Логбек состоит из трёх модулей:
Logback использует Logger для записи и вывода журналов. LoggerContext является контейнером Logger и в основном поддерживает связь между Logger и Appender.
Appender используется для вывода логов в разные места, например, в консоль или файл.
Файл конфигурации журнала событийэтоXMLдокумент,Имя logback.xml.,По умолчанию он размещается в корневом каталоге пути к классам.
Вот простой пример logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- вывод на консоль -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- вывод в файл -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/demo.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/demo.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<!-- Установить уровень вывода журнала -->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</configuration>
В файле конфигурации определены два Appender: один выводит данные на консоль, а другой — в файл. Атрибуту класса первого Appender присвоено значение ConsoleAppender, что означает, что журнал будет выводиться на консоль. Атрибуту класса второго Appender присвоено значение RollingFileAppender, что означает, что журнал будет выведен в файл. Среди них имя файла — log/demo.log, и файл журнала будет разделен по дате.
Журнал журнала определяет пять уровней журнала: TRACE, DEBUG, INFO, WARN и ERROR, в порядке от низкого к высокому. В реальных приложениях соответствующий уровень журнала следует выбирать в соответствии с потребностями.
Spring Boot можно легко интегрировать с Logback. Вам нужно только добавить зависимость logback в файл pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.5.2</version>
</dependency>
Примеры следующие:
Spring Boot по умолчанию использует Logback в качестве платформы ведения журналов, поэтому после добавления зависимости logback Spring Boot автоматически определит и загрузит файл logback.xml в пути к классам.
Использование Logback с Spring Boot очень простое.,Просто используйте Logger в коде для вывода журнала. LoggerFactory — это фабричный класс, предоставляемый Logback.,Может использоваться для получения экземпляров Logger.
Вот простой пример:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo {
private static final Logger logger = LoggerFactory.getLogger(Demo.class);
public void test() {
logger.info("Hello, world!");
}
}
В приведенном выше коде мы определяем класс Demo и используем LoggerFactory для получения экземпляра Logger. В методе тестирования мы используем Logger для вывода журнала.
По умолчанию уровень вывода журнала Spring Boot — INFO. Если вы хотите изменить уровень вывода журнала, вы можете добавить следующую конфигурацию в файл application.properties или application.yml:
logging.level.<package>=<level>
в,<package>Указывает имя пакета для установки уровня журнала.,<level>Указывает уровень журнала, который необходимо установить,Может быть TRACE, DEBUG, INFO, WARN, ERROR. Например,Чтобы установить уровень журнала в пакете org.springframework на DEBUG.,Вы можете добавить следующую конфигурацию:
logging.level.org.springframework=DEBUG
Помимо регистрациивывод на консольснаружи,Мы также можем сохранить журналы в файл. Вход в систему можно реализовать через FileAppender или RollingFileAppender.
FileAppender — это Appender, который выводит журналы в указанный файл. Вот пример FileAppender:
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>logs/demo.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
В приведенном выше примере мы определили файл с именем Appender и сохранили журнал в файле logs/demo.log. Атрибут шаблона определяет формат вывода журнала.
RollingFileAppender — это Appender, который разбивает файлы журналов по определенным правилам. Он может разделять файлы журналов по времени, размеру файла и другим правилам. Вот пример RollingFileAppender:
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/demo.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/demo.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
В приведенном выше примере мы определили файл с именем Appender и использовали SizeAndTimeBasedRollingPolicy для разделения файла журнала. Атрибут fileNamePattern определяет формат имени файла журнала %d{гггг-ММ-дд} указывает на разделение по дате, а %i указывает индексный номер файла (если размер файла превышает 10 МБ, он будет разделен на новые файлы). с индексными номерами Will +1). Атрибут maxFileSize определяет максимальный размер каждого файла журнала, а атрибут maxHistory определяет количество сохраняемых файлов журнала.
Простой тестовый пример приведен ниже:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DemoApplication {
private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);
public static void main(String[] args) {
logger.info("Hello, world!");
}
}
Запуск теста После примера,Информация журнала будетвывод на консольиlogs/demo.logдокументсередина。
В этой статье представлен Весной Платформа ведения журналов Logback интегрирована в приложение Boot и реализована. файлы журналов локальный метод. Благодаря приведенной выше настройке и тестированию мы видим, что журналы приложений были успешно выведены в указанный каталог. Наконец, следует отметить, что при настройке файла При экспорте журнала вам необходимо оформить файл в соответствии с реальными потребностями. журналарезкаифайл журнала Сохраните настройку количества дней, иначе это может привести к тому, что место на системном диске будет занято слишком много.
👨🎓Автор:Bugger ✏️Блог: CSДН, копатьзолото、 infoQ、 51технический директор и т. д. 🎉Джейнмежду:CSDN|Алибаба Облако|Облако Huawei|51CTO и т. д. Эксперт по блогам сообщества, 30 лучших звезд блогов, копать Gold, 40 самых популярных авторов года, 12 лучших блоггеров года 51CTO, копать Gold | InfoQ | 51CTO и т. д.Высококлассные авторы в сообществе,Фанаты по всей сетиобщий15w+ публичный аккаунт Hardcore WeChat; 「Круг обезьян«Чудесный дом», добро пожаловать к вамприсоединения!Бесплатная шлюха последняяBATВопросы для собеседования в интернет-компании、4000G Электронные книги в формате PDF, шаблоны резюме и другие массивные материалы.