问题
新建的 SpringBoot 项目使用默认的 logback 作为日志框架。使用 logback.xml
作为配置文件时发现,会出现生成 spring.application.name_IS_UNDEFINED.log
的文件。
原因
问题原因:原因是日志配置里配置了读取 application.yml
的参数作为日志文件名称,
<springProperty scope="context" name="springApplicationName" source="spring.application.name" defaultValue="undefined"/>
<property name="log.path" value="${LOG_PATH:-./logs}/${SPRING_PROFILES_ACTIVE:-local}/${springApplicationName}"/>
而 SpringBoot 加载顺序是 logback.xml
> application.yml
> logbak-spring.xml
。
导致加载 logback.xml
时还未加载 application.yml
,所以出现参数 IS_UNDEFINED
这个问题。
方案
修改配置文件为 logback-spring.xml
为配置文件或者在 application.yml
的文件中添加 logging:config:
参数指定配置文件。