簡體   English   中英

spring-boot 創建 logging.path_IS_UNDEFINED.log 文件

[英]spring-boot creates logging.path_IS_UNDEFINED.log file

我的 spring-boot 應用程序創建了一個名為logging.path_IS_UNDEFINEDlogging.file_IS_UNDEFINED.log的日志文件,其中明確指出在 logback 初始化日志配置時未設置logging.pathlogging.file屬性。 這聽起來像這樣的重復一個不過,我試圖從該職位所有建議的解決方案。 我正在使用 spring-boot 2.0 版

應用程序-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>

或者,您可以在 logback.xml 中設置一個“路徑”變量並將文件名附加到它以將其存儲在另一個“LOG_FILE”屬性中:

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

大家,新年快樂! 因此,當我更新Spring Boot 版本 (2.4.1)並開始收到 LOG_PATH_IS_UNDEFINED 錯誤時,我提出了類似的問題。

我做了一些研究,我猜測從 logging.path 到 LOG_PATH 的屬性映射存在問題。 (我手動調試了記錄器並且正在加載屬性)

我的解決方案/補丁:

我在最頂部的 logback-spring.xml 中添加了一個手動映射:

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

現在它對我有用......

你在application-dev.yaml 中初始化的 logging.path 在spring-logback.xml 中設置了變量${LOG_PATH}

如果你初始化變量logging.file ,你可以在spring-logback.xml 中使用變量${LOG_FILE}所以你應該像下面那樣初始化。

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

並在spring-logback.xml 中設置變量

<property name="LOG_FILE" value="${LOG_FILE}"/>
<file>${LOG_FILE}</file>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM