spring-boot创建logging.path_IS_UNDEFINED.日志文件



我的spring-boot应用程序创建了一个名为logging.path_IS_UNDEFINEDlogging.file_IS_UNDEFINED.log的日志文件,该文件明确表示在logback初始化日志配置时未设置logging.pathlogging.file属性。这听起来像是这篇文章的翻版。然而,我尝试了那篇文章中提出的所有解决方案。我使用的是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>

另外,您可以设置一个"路径";变量,并将您的文件名附加到其上,以将其存储在另一个"中;LOG_ FILE";属性:

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

大家新年快乐!因此,当我更新春季启动版本(2.4.1(时,我遇到了类似的问题,并且我开始得到LOG_PATH_IS_UNDEFINED错误。

我做了一些研究,我猜从logging.path到LOG_path的属性映射有问题。(我手动调试了记录器,并且正在加载属性(

我的解决方案/补丁:

我在最上面添加了一个手动映射到logback-spring.xml:

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

现在它对我有效…

logging.path您在application-dev.yamlspring-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>

最新更新