springBoot中出现:Failed to rename context [springAppName_IS_UNDEFINED] as...报错
由加载顺序引起的问题
·
原因分析,在spring环境的加载顺序是先bootstrap.yml(或bootstrap.properties),再加载application.yml。如果配过springCloud config的朋友应该能有体会,动态扩容、公共配置啊之类的,就是在bootstrap预先加载的。
有两步可以解决这个问题:
1. 增加一个bootstrap.yml
#服务名
spring:
application:
name: pds-gateway
2. logback-spring.xml配置如下(注意,有时文件名配不好也会报错,比如配成logback.xml):
<springProperty scope="context" name="springAppName" source="spring.application.name"/>
<contextName>${springAppName}</contextName>
//。。。。。。略过一些
<property name="APPDIR" value="${springAppName}" />
<!-- 按照每天生成日志文件 -->
<appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_PATH}/${APPDIR}/base/${springAppName}-base.%d{yyyy-MM-dd}.log</FileNamePattern>
加载这个名字主要是为了动态生成文件名,如果就一个单体应用,就直接写死应用名字或不写也没什么大不了,没必要花里胡哨
更多推荐
已为社区贡献1条内容
所有评论(0)