基于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运行时多态性的实现

    Java运行时多态性的实现

    Java运行时多态性的实现...
    2006-12-12
  • 举例讲解Java设计模式编程中Decorator装饰者模式的运用

    举例讲解Java设计模式编程中Decorator装饰者模式的运用

    这篇文章主要介绍了Java设计模式编程中Decorator装饰者模式的运用,装饰者模式就是给一个对象动态的添加新的功能,装饰者和被装饰者实现同一个接口,装饰者持有被装饰者的实例,需要的朋友可以参考下
    2016-05-05
  • 微信公众号开发之设置自定义菜单实例代码【java版】

    微信公众号开发之设置自定义菜单实例代码【java版】

    这篇文章主要介绍了微信公众号开发之设置自定义菜单实例代码,本实例是为了实现在管理后台实现微信菜单的添加删除管理。需要的朋友可以参考下
    2018-06-06
  • mybatis对于list更新sql语句的写法说明

    mybatis对于list更新sql语句的写法说明

    这篇文章主要介绍了mybatis对于list更新sql语句的写法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Spring Boot+Jpa多数据源配置的完整步骤

    Spring Boot+Jpa多数据源配置的完整步骤

    这篇文章主要给大家介绍了关于Spring Boot+Jpa多数据源配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • java密钥交换算法DH定义与应用实例分析

    java密钥交换算法DH定义与应用实例分析

    这篇文章主要介绍了java密钥交换算法DH定义与应用,结合实例形式分析了Java密钥交换算法DH的原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • Java中的权重算法(如Dubbo的负载均衡权重)详解

    Java中的权重算法(如Dubbo的负载均衡权重)详解

    这篇文章主要介绍了Java中的权重算法(如Dubbo的负载均衡权重)详解,负载均衡,其含义就是指将负载进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务,需要的朋友可以参考下
    2023-08-08
  • 创建网关项目(Spring Cloud Gateway)过程详解

    创建网关项目(Spring Cloud Gateway)过程详解

    这篇文章主要介绍了创建网关项目(Spring Cloud Gateway)过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 基于Java生成图片验证码的方法解析

    基于Java生成图片验证码的方法解析

    这篇文章主要来为大家详细介绍一下基于Java生成图片验证码的具体方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-02-02
  • Java项目防止SQL注入的几种方法总结

    Java项目防止SQL注入的几种方法总结

    SQL注入是比较常见的网络攻击方式之一,在客户端在向服务器发送请求的时候,sql命令通过表单提交或者url字符串拼接传递到后台持久层,最终达到欺骗服务器执行恶意的SQL命令,下面这篇文章主要给大家总结介绍了关于Java项目防止SQL注入的几种方法,需要的朋友可以参考下
    2023-04-04

最新评论