Почему файл журнала Spring Boot 3 может не быть создан?

В приложении Spring Boot, недавно обновленном с Boot 2.5 до 3.2.4. Мы всегда использовали свойство конфигурации logging.file.name, чтобы указать, где создаются файлы журналов, и никогда не возникало проблем. Однако после обновления до Boot 3 мы больше не создаем файлы журналов.

Мы используем YAML для внешней конфигурации, и я безуспешно пробовал все следующее:

logging:
  file:
    name: logs/my-app-log.txt
logging:
  file:
   path: logs

-Dlogging.file.name=appLog.txt передается командная строка, запускающая приложение.

Независимо от того, что я пытаюсь, я никогда не создаю файл журнала, только ведение журнала консоли.

У нас нет никаких пользовательских файлов logback-spring.xml или других файлов конфигурации impl.

На всякий случай я дважды проверил документацию, чтобы подтвердить, что эти свойства (по-прежнему) имеют правильные имена — так оно и есть. Я также подтвердил, что никакие разрешения файловой системы не изменились, и учетная запись пользователя, запускающая приложение, может писать в папки.

Какие еще могут быть причины отсутствия создания файлов журналов?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
294
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Установив для системного свойства logback.debug значение true (я передал -Dlogback.debug=true в командной строке, которая запускает мое приложение), я смог увидеть, что Logback находит файл конфигурации logback.xml в пути к классам. Он был встроен в мою зависимость, а это категорически запрещено для публикации библиотек.

В этом файле logback.xml не было приложения к файлу, поэтому файлы журналов для моего приложения не создавались - наличие logback.xml в пути к классам является частью механизма обнаружения конфигурации Logback и приводит к обходу собственной конфигурации Spring Boot по умолчанию. .

Одним из обходных путей было бы создать собственный файл logback.xml в папке src/main/resources моего приложения (при использовании Gradle или Maven) и полностью настроить там Logback.

К счастью для меня, существование logback.xml в этой зависимости уже было отмечено как ошибка и исправлено в новой версии; обновление моей зависимости до новой версии решило проблему.

Другие вопросы по теме