SpringBoot logback-spring.xml springprofile无效

时间:2017-04-12 02:07:55

标签: java spring logging spring-boot logback

在我的logback-spring.xml中,如果我将记录器级别包含为INFO,它工作正常,但除了INFO(WARN,ERROR)之外,甚至应用程序都没有加载。在登录控制台之后,应用程序启动将永久停止。{{ 3}}。任何帮助都是值得的。

在控制台中输出日志:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.2.RELEASE)

的logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-%msg %n
            </Pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
    </appender>

    <appender name="minuteRollingFileAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>/usr/src/app/logs/test%d{yyyy-MM-dd_HH-mm}.log
            </FileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35}-%msg %n</Pattern>
        </encoder>
    </appender>     


    <springProfile name="dev,staging"> 
        <root>
            <level value="INFO" /><!--ERROR not working -->
            <appender-ref ref="minuteRollingFileAppender" />
            <appender-ref ref="consoleAppender" />
        </root>
    </springProfile>
</configuration>

1 个答案:

答案 0 :(得分:2)

可以在控制台中明确包含或排除Spring-boot标题。某些IDE中有一些设置可以做到这一点。

如果您没有任何日志级别与INFO不同的日志,您将只看到应用程序启动的横幅。看起来应用程序没有启动,但仅仅因为没有写入日志。

排除application.properties中的横幅:

spring.main.banner-mode=off

main

SpringApplication app = new SpringApplication(SpringBootConsoleApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);