在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的。我们平时经常使用的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>

参考

  • Spring Boot 日志框架配置
  • slf4j,log4j,logback的关系
  • Spring Boot官方文档,这个必须有!

基于Spring Boot的Logback日志轮转配置相关推荐

  1. spring boot—自定义logback日志配置

    自定义日志配置 spring boot2.2.4官方文档 logback中文文档    1)spring boot可以适应所有日志框架,只需在类路径下包含相应的依赖来激活各种日志系统.    2)sp ...

  2. 基于Spring Boot配置文件的日志记录示例样本

    我们希望在Spring Boot中为不同的配置文件使用不同的日志记录配置,例如在本地运行中,我们只希望控制台日志记录和用于生产,我们希望文件记录日志支持每天滚动日志文件. 我想出了一个示例logbac ...

  3. 基于Spring Boot Profile的日志记录示例样本

    我们希望在Spring Boot中为不同的配置文件使用不同的日志记录配置,例如在本地运行中,我们只希望控制台日志记录和用于生产,我们希望文件记录日志支持每天滚动日志文件. 我提出了一个示例logbac ...

  4. spring boot使用logback实现多环境日志配置

    From: https://blog.csdn.net/vitech/article/details/53812137 软件生存周期中,涉及代码运行的环节有编码.测试和维护阶段,而一套成熟的代码,在此 ...

  5. 基于Spring Boot不同的环境使用不同的配置方法

    原文路径:http://www.jb51.net/article/132589.htm ---------------------------------------- 默认是profile为dev, ...

  6. 基于Spring Boot 2.5.1 微服务框架发布(Eurynome Cloud )

    企业级技术中台微服务架构与服务能力开发平台(Eurynome Cloud ) Eurynome Cloud是一款企业级技术中台微服务架构与服务能力开发平台.基于Spring Boot 2.5.1.Sp ...

  7. spring boot中的日志入门

    日志通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要地位. 报警系统与日志系统的关系 为了保证服务的高可用,发现问题一定要及时,定位 ...

  8. 基于Spring Boot+Cloud构建微云架构

    链接:my.oschina.net/u/3636867/blog/1802517 前言 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道.因为网上流传的多数资料是官网翻译而 ...

  9. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

最新文章

  1. 如何用手机打开dcm格式图片_手机也能当扫描仪用?如何用手机扫描图片?
  2. 视觉SLAM总结——视觉特征子综述
  3. html标记什么规定applet,HTML applet 标签
  4. linux下vtune使用
  5. Qt 第一步 HelloWorld 的第一个程序
  6. python SimpleHTTPServer 快速共享文件
  7. 【Linux小技巧】开启关闭蜂鸣声
  8. python定制框架知识点_python框架中flask知识点总结
  9. 数据预处理-数据变换-属性构造
  10. 【LINQ】Linq to SQL -- Count/Sum/Min/Max/Avg 操作符
  11. 2021年葡萄酒酿造及葡萄酒产业发展研究报告
  12. c语言编程绝对质数,c语言求绝对素数
  13. Java jdk的下载与安装
  14. 阿里云服务器可选系统有哪些?如何选择?
  15. 2 年前端面试心路历程(字节跳动、YY、虎牙、BIGO)
  16. 2021CCPC东北四省赛 K. City 并查集
  17. 360P 480P 720P 1080P 1080i 说明
  18. 《设计模式入门》 19.命令模式
  19. scrapy使用用Xpath提取深层标签
  20. python压缩图片--指定压缩大小且保真压缩

热门文章

  1. Golang 的 “omitempty” 关键字略解
  2. 一、android XML资源文件详解 —— 从物理上分析
  3. jQuery LigerUI 使用教程入门篇
  4. vuex mysql_Vue插件---Vuex(仓库,数据库)
  5. JVM优化系列-Java对象引用与可触及强度
  6. 最全面的MySQL面试题大全-二
  7. no valid Qt versions found
  8. 《go 语言程序设计》读书笔记(六)Goroutine与系统线程的区别
  9. activity任意节点跳转
  10. rabbitmq消息确认机制及死信队列的使用