Spring Boot 2缺少日志

时间:2018-10-19 01:25:18

标签: spring-boot logging

我们最近已从SpringBoot 1.5.x迁移到2.0.4.RELEASE,更改后缺少日志记录级别。

这是我们的依赖项

    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.SR1</spring-cloud.version>   
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.codehaus.janino</groupId>
        <artifactId>janino</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

这是我们的application.properties:

spring.application.name=demo

# ---------------------
# Server Configuration
# ---------------------
server.servlet.context-path=/demo
server.port=8080

# ----------------------
# Logging Level Settings
# ----------------------


app.log.level=INFO


logging.level.com.demo.service.LogMeService=DEBUG

这是我们的logback.xml的一部分

<property file="application.properties"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>demo-application.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <FileNamePattern>demo-application.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
        <maxFileSize>250MB</maxFileSize>
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>${LOG_PATTERN}</pattern>
    </encoder>
</appender>



<root level="${app.log.level:-INFO}">
    <appender-ref ref="FILE" />
</root>

有趣的部分是,如果我们使用application.properties作为属性文件名,则可以看到LogMeService的日志。一切正常。

但是,如果我重命名属性文件,例如demo.properties,则LogMeService的日志将消失。还有其他人遇到吗?

这仅在我们迁移到SpringBoot 2.x时发生

1 个答案:

答案 0 :(得分:0)

默认情况下,Spring Boot使用application.properties作为配置源。因此,您的日志配置由应用程序标识。如果要使用另一个属性文件作为默认配置源,则可以在运行应用程序时更改spring.config.location

java -jar springboot-application.jar --spring.config.location=path/to/demo.properties

否则,您可以将SPRING_CONFIG_LOCATION环境变量设置为指向demo.properties

有关更多信息,请参阅Spring Boot configuration guide