背景

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

默认日志Logback

SLF4J——Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一Facade抽象。Java日志框架众多——常用的有java.util.logging, log4j, logback,commons-logging, Spring框架使用的是Jakarta Commons Logging API (JCL)。而SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定的——它提供了各类日志框架的binding。

Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。

springboot初始化了日志的默认实现,只要我们在配置文件添加对应的配置即可。

比如

logging:

file: logs/application-debug.log

pattern:

console: "%d %-5level %logger : %msg%n"

file: "%d %-5level [%thread] %logger : %msg%n"

level:

org.springframework.web: ERROR

com.howtodoinjava: INFO

org.hibernate: ERROR

可以指定日志文件名,覆盖默认的pattern,指定不同日志级别。

但依旧有很多局限性。比如,默认的文件方案是:

E:\maven\repository\org\springframework\boot\spring-boot\1.5.13.RELEASE\spring-boot-1.5.13.RELEASE.jar!\org\springframework\boot\logging\logback\file-appender.xml

class="ch.qos.logback.core.rolling.RollingFileAppender">

${FILE_LOG_PATTERN}

${LOG_FILE}

${LOG_FILE}.%i

class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

10MB

只是超过10m就生成一个新文件。而我们还遇到过日志把磁盘打满的情况。肯定需要定时清理,还想要按照日期生成文件。这样,仅仅配置文件是不够的,需要我们自己定义。

自定义

实现自定义就是在resource下新增logback-spring.xml, 然后编写我们的配置方案。就是完全跳过spring的默认配置了。但我又想偷懒,还想用spring的配置,但只是修改个别,比如file。

spring默认配置文件 E:\maven\repository\org\springframework\boot\spring-boot\1.5.13.RELEASE\spring-boot-1.5.13.RELEASE.jar!\org\springframework\boot\logging\logback\base.xml

我们只要

就可以拿过来直接用。

最初我也是这样做的,但后面发现有些东西是不能覆盖的。比如内置的日志文件名,所以,最后把base里的内容单独抽离出来用了。

logback-spring.xml

defaultValue="application"/>

defaultValue="logs"/>

defaultValue="localhost:4560"/>

${LOG_FILE}.%d{yyyy-MM-dd}.%i.log

7

100MB

1GB

${FILE_LOG_PATTERN}

${logstashurl}

同时,需要读取配置文件, 配置文件依旧生效

logging:

path: logs

file: ${logging.path}/${spring.application.name}

这里,include拿到spring默认配置,但移除了base里的root配置,去掉了file。并自定义file。file规则是保存7天,每100m分一个文件,总大小不超过1G。

defaultValue="application"/>

defaultValue="logs"/>

defaultValue="localhost:4560"/>

这一块配置并没有使用,只是放这里备份。logback里想要使用spring的配置文件的变量,只能通过这种方式读取。因为我配置了logstash,需要读取logstash的url,所以这样做。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

java logback策略输出无效,如何修改覆盖spring boot默认日志策略logback详解相关推荐

  1. 【spring boot】8.spring boot的日志框架logback使用

    在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. 参考:http://tengj.top/2017/04/05/springbo 开篇之前,贴上完整applica ...

  2. java图片填充父容器_java相关:spring的父子容器及配置详解

    java相关:spring的父子容器及配置详解 发布于 2020-5-26| 复制链接 本篇文章主要介绍了spring的父子容器及配置详解,详细的介绍了spring父子容器的概念.使用场景和用法,有兴 ...

  3. java缓存管理器_使用@EnableCaching的Spring Boot默认缓存管理器

    我在SpringBootApplication中实现了缓存,如下所示 @SpringBootApplication @EnableCaching public class SampleApplicat ...

  4. Spring Boot(十)Logback和Log4j2集成与日志发展史

    一.简介 Java知名的日志有很多,比如:JUL.Log4j.JCL.SLF4J.Logback.Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看. 1.1 ...

  5. java log4j基本配置及日志级别配置详解,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  6. Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解。

    Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解. 什么是匿名内部类? 顾名思义 匿名 就是没有名字,一个没有名字的内部类,称为匿名内部类. 下面先看一个例子,比如说你 ...

  7. Java多线程系列(九):CountDownLatch、Semaphore等4大并发工具类详解

    之前谈过高并发编程系列:4种常用Java线程锁的特点,性能比较.使用场景 ,以及高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) 今天主要介绍concurre ...

  8. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]

    本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...

  9. Java开发人员应该知道的5大Spring Boot功能

    您可能已经听说过Spring Boot,这是用不到140个字符创建一个Spring Web应用程序的神奇力量,可以在一条推文中编写这些字符,但这到底意味着什么? 哪些功能可以使Spring Boot具 ...

最新文章

  1. Qt的Android应用消除启动黑屏
  2. Leetcode 141.环形链表
  3. 安装Uikit时ERROR in Entry module not found: Error: Can't resolve './src' in 'xxx'的解决思路
  4. 六十三、SpringBoot中的日志框架SLF4j的使用
  5. python面向对象语言_Python语言基础之——面向对象编程
  6. python color属性_使用Python制作一个带GUI界面的词云自动生成工具(连载七)
  7. 数据结构(十二)动态规划
  8. jQuery——入门(四)JQuery 事件
  9. 条件信息熵的决策表约简
  10. 卓岚zlan系列串口服务器,卓岚信息技术隔离型串口服务器ZLAN5143BI概述
  11. Java实现中英文词典功能
  12. 用酷狗播放音乐时,会显示在msn的头像旁边
  13. python3调用arcpy地理加权回归_分析地理加权回归分析结果的操作方法
  14. iOS 签名机制与证书
  15. 计算机图形学实验报告几何变换,计算机图形学实验报告几何变换.doc
  16. 基于TensorFlow让机器生成赵雷曲风的歌词
  17. 拼多多item_search - 根据关键词取商品列表
  18. 2022年化工自动化控制仪表考试模拟100题及在线模拟考试
  19. 大数据之clickhouse安装部署
  20. Ae:字符面板与段落面板

热门文章

  1. 麦克风采样率设置导致视频会议中声音采集异常问题分享
  2. 39、count_rpkm_fpkm_TPM
  3. 郑州市元宇宙产业发展实施方案发布,中创助力元宇宙创新建设!
  4. 杭州西湖|杭州西湖简介| 杭州西湖景点介绍| 杭州西湖十景| 杭州西湖图片
  5. 短视频APP-测试心得
  6. 安卓 应用程序userID标志位
  7. Openwrt通用固件make menuconfig配置
  8. chatgpt人工智能AI付费对话自适应源码openai写代码写论文付费问答3.5接口
  9. Python面试20题(基础)
  10. 多模态大模型的发展、挑战与应用