原因分析,在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>

加载这个名字主要是为了动态生成文件名,如果就一个单体应用,就直接写死应用名字或不写也没什么大不了,没必要花里胡哨

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐