spring-boot создает файл logging.path_IS_UNDEFINED.log

мое приложение spring-boot создает файл журнала с именем logging.path_IS_UNDEFINEDlogging.file_IS_UNDEFINED.log, в котором четко указано, что свойства logging.path и logging.file не установлены, пока logback инициализирует конфигурацию журнала. Это звучит как дубликат этого one. Я попробовал все предложенные решения из этого поста. Я использую весеннюю загрузку версии 2.0

application-dev.yaml

spring:
  main:
    allow-bean-definition-overriding: true
  application:
    name: my-application

logging:
  path: /var/logs/${spring.application.name}/
  file:
    max-size: 10MB
    max-history: 5

spring-logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/file-appender.xml"/>

    <property name="logging.pattern.console" value="%d{HH:mm:ss.SSS} [%t] %-5level %X{transactionId} %logger{36} - %msg%n"/>
    <property name="logging.file.roll-pattern" value="application-%d{yyyy-MM-dd}-%i.log"/>

    <springProfile name="dev">
        <property resource="application-dev.yaml" />
        <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
        <logger name="org.springframework" level="INFO"/>
        <logger name="com.myapp" level="DEBUG"/>

        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${logging.path}${logging.file}.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- daily rollover -->
                <fileNamePattern>${logging.path}${logging.file}.%d{yyyy-MM-dd}.log</fileNamePattern>

                <!-- keep 30 days' worth of history capped at 3GB total size -->
                <maxHistory>30</maxHistory>
                <totalSizeCap>3GB</totalSizeCap>

            </rollingPolicy>

            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
        </appender>

        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="FILE"/>
        </root>
    </springProfile>
</Configuration>

person quartaela    schedule 03.12.2018    source источник
comment
Для пользователей Google: stackoverflow.com/questions/29322709/   -  person RBz    schedule 05.06.2021


Ответы (3)


В качестве альтернативы вы можете установить переменную пути в файле logback.xml и добавить к ней свое имя файла, чтобы сохранить его в другом свойстве LOG_FILE:

    <springProperty scope="context" name="path" 
    source="logging.path" />
<property name="LOG_FILE" 
    value="${path}/myapp.log" />
person jaknichan    schedule 05.08.2020

С новым годом всех! Итак, я столкнулся с похожей проблемой, когда обновил весеннюю загрузочную версию (2.4.1) и начал получать ошибку LOG_PATH_IS_UNDEFINED.

Я провел небольшое исследование и предполагаю, что есть проблема с отображением свойств из logging.path в LOG_PATH. (Я вручную отлаживал регистратор, и свойства загружались)

Мое решение/патч:

Я добавил ручное сопоставление с logback-spring.xml в самом верху:

<springProperty scope="context" name="LOG_PATH" source="logging.path"/>

Теперь он у меня работает...

person Esteban    schedule 01.01.2021

logging.path, который вы инициализировали в application-dev.yaml, задайте переменную ${LOG_PATH} в spring-logback.xml.

если вы инициализируете переменную logging.file, вы можете использовать переменную ${LOG_FILE} в spring-logback.xml, поэтому вы должны инициализировать, как показано ниже.

logging:
    file: /var/logs/myApp.log

и установите переменную в spring-logback.xml

<property name="LOG_FILE" value="${LOG_FILE}"/>
<file>${LOG_FILE}</file>
person sw.jeong    schedule 19.02.2019