Spring Boot 之 LogBack 配置

本文为[原创]文章,转载请标明出处。

原文链接: https://weyunx.com/2019/02/01…

原文出自 微的技术博客

LogBack 默认集成在 Spring Boot 中,是基于 Slf4j
的日志框架。默认情况下 Spring Boot 是以 INFO 级别输出到控制台。

它的日志级别是:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < OFF

配置

LogBack 可以直接在 application.properties
application.yml
中配置,但仅支持一些简单的配置,复杂的文件输出还是需要配置在 xml
配置文件中。配置文件可命名为 logback.xml
, LogBack 自动会在 classpath
的根目录下搜索配置文件,不过 Spring Boot 建议命名为 logback-spring.xml
,这样会自动引入 Spring Boot 一些扩展功能。

如果需要引入自定义名称的配置文件,需要在 Spring Boot 的配置文件中指定,如:

logging:
  config: classpath:logback-spring.xml

同时 Spring Boot 提供了一个默认的 base.xml
配置,可以按照如下方式引入:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
</configuration>

base.xml
提供了一些基本的默认配置以及在控制台输出时的关键字配色,具体文件内容可以看 这里
,可以查看到一些常用的配置写法。

详细配置

变量

可以使用 <property>
来定义变量:

<property name="log.path" value="/var/logs/application" />

同时可以引入 Spring 的环境变量:

<property resource="application.yml" />
<property resource="application.properties" />

所有的变量都可以通过 ${}
来调用。

输出到控制台

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%.-1level|%-40.40logger{0}|%msg%n</pattern>
    </encoder>
  </appender>
 
  <logger name="com.mycompany.myapp" level="debug" />
  <logger name="org.springframework" level="info" />
  <logger name="org.springframework.beans" level="debug" />
 
  <root level="warn">
    <appender-ref ref="console" />
  </root>
</configuration>

输出到文件

<property name="LOG_FILE" value="LogFile" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_FILE}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 每日归档日志文件 -->
        <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
        <!-- 保留 30 天的归档日志文件 -->
        <maxHistory>30</maxHistory>
        <!-- 日志文件上限 3G,超过后会删除旧的归档日志文件 -->
        <totalSizeCap>3GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

多环境配置

LogBack 同样支持多环境配置,如 dev
test
prod

<springProfile name="dev">
    <logger name="com.mycompany.myapp" level="debug"/>
</springProfile>

启动的时候 java -jar xxx.jar --spring.profiles.active=dev
即可使配置生效。

如果要使用 Spring 扩展的 profile 支持,配置文件名必须命名为 LogBack_Spring.xml
,此时当 application.properties
中指定为 spring.profiles.active=dev
时,上述配置才会生效。

参考

  • https://docs.spring.io/spring…

  • https://dzone.com/articles/en…

  • https://dzone.com/articles/co…

  • http://tengj.top/2017/04/05/s…

原文 

https://segmentfault.com/a/1190000018323081

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Spring Boot 之 LogBack 配置

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址