基于Spring Boot的Logback日志轮转配置详解

 更新时间:2017年10月18日 14:24:38   作者:xingoo  
本篇文章主要介绍了基于Spring Boot的Logback日志轮转配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的。我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异。这里就结合Spring Boot配置一下Logback的日志。

默认最简单的配置

默认情况下,如果对日志没有特殊处理,可以直接基于application.properties进行配置。

常用的参数有:

logging.level

配置日志的级别

logging.file
logging.path

这两个参数只能配置一个生效,一个是文件(可以有绝对路径或者相对路径);另一个是路径,文件的名称会默认为spring.log

日志默认按照大小进行切分,由于我这边没有产生那么大的文件,因此没有做实验。

这种方法最简单,但是不能处理那种复杂的日志轮转的机制。比如没天一个文件这种需求,因此可以考虑使用独立的日志文件进行配置:

使用独立的配置文件配置

如果有复杂的需求,可以像其他普通的web应用一样,配置独立的logback.xml:

首先注意的是这个文件必须放在resources目录下(我这边发现,如果通过logging.config指向另一个目录下的logback.xml会在程序启动时报错,报无法解析该xml。猜想可能是在其他目录下的xml都被当做spring的配置或者有xml schema信息的配置,单纯的logback.xml它不认识)

然后在application.properties文件中加入:

# 配置logback
logging.config=classpath:logback-spring.xml

即可。

注意如果是logging.config=classpath:xxxx/logback-spring.xml,就不行了哈!我试过好多次!

配置的内容基本可以参考下面的来:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- 属性文件 -->
  <property name="processName" value="xxx"/>
  <property name="logDir" value="/opt/logs/xxx"/>

  <!-- 默认的控制台日志输出,一般生产环境都是后台启动,这个没太大作用 -->
  <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <!--<Encoding>UTF-8</Encoding>-->
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%date [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
    </layout>
  </appender>

  <!-- 配置文件轮转 -->
  <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--<Encoding>UTF-8</Encoding>-->
    <File>${logDir}/service.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <FileNamePattern>${logDir}/history/service.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%date [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
    </layout>
  </appender>


  <!-- 修改其他包的日志输出级别 -->
  <logger name="org.apache.zookeeper">
    <level value="WARN"/>
  </logger>

  <!-- root 默认日志配置 , 注意这里的级别哈!小心生产环境用DEBUG,压爆你的磁盘!-->
  <root level="INFO">
    <appender-ref ref="logfile"/>
    <appender-ref ref="stdout"/>
  </root>
</configuration>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java 创建并应用PPT幻灯片母版的方法示例

    Java 创建并应用PPT幻灯片母版的方法示例

    幻灯片母版可供用户设置幻灯片的样式,本文将介绍如何用Java创建并应用单个或多个幻灯片母版。感兴趣可以了解一下
    2020-06-06
  • SpringBoot项目如何将Bean注入到普通类中

    SpringBoot项目如何将Bean注入到普通类中

    这篇文章主要介绍了SpringBoot项目如何将Bean注入到普通类中,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • SpringBoot整合数据库访问层的实战

    SpringBoot整合数据库访问层的实战

    本文主要介绍了SpringBoot整合数据库访问层的实战,主要包含JdbcTemplate和mybatis框架的整合应用,具有一定的参考价值,感兴趣的可以了解一下
    2022-03-03
  • 如何实现java8 list按照元素的某个字段去重

    如何实现java8 list按照元素的某个字段去重

    这篇文章主要介绍了如何实现java8 list按照元素的某个字段去重,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • 如何在SpringBoot项目中集成SpringSecurity进行权限管理

    如何在SpringBoot项目中集成SpringSecurity进行权限管理

    在本文中,我们将讨论如何在Spring Boot项目中集成权限管理,我们将使用Spring Security框架,这是一个专门用于实现安全性功能的框架,包括认证和授权,需要的朋友可以参考下
    2023-07-07
  • java生成验证码步骤归纳总结

    java生成验证码步骤归纳总结

    这篇文章主要为大家详细介绍了java生成验证码的步骤总结,需要的朋友可以参考下
    2017-04-04
  • Java实现整数分解质因数的方法示例

    Java实现整数分解质因数的方法示例

    这篇文章主要介绍了Java实现整数分解质因数的方法,结合实力形式分析了质因数分解的原理与实现方法,涉及java数值运算相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • SpringBoot文件上传大小设置方式(yml中配置)

    SpringBoot文件上传大小设置方式(yml中配置)

    这篇文章主要介绍了SpringBoot文件上传大小设置方式(yml中配置),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java单链表的增删改查与面试题详解

    Java单链表的增删改查与面试题详解

    单链表是链表的其中一种基本结构。一个最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个具有相同结构的结点。 因为只有一个指针结点,称为单链表
    2022-09-09
  • java反射机制的一些学习心得小结

    java反射机制的一些学习心得小结

    这篇文章主要给大家介绍了关于java反射机制的一些学习心得,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论