文章目录

  • 默认日志框架--配置全解
  • 日志格式
  • 日志级别
  • 日志输出到控制台
  • 日志输出到文件

spring boot2.2.4官方文档


默认日志框架–配置全解

#日志记录
logging:#日志级别level:#可以调整不同目录的日志级别(注意:必须指定包,否则报错)root: infocom.cd.example.one: tracecom.cd.example.two: debugcom.cd.example.three: info#日志文件file:#日志文件完整路径(包含日志文件名)name: D:\idea\logs\example-loggin.log#日志文件目录路径(spring boot默认使用spring.log作为日志文件)#path: D:\idea\log#文件大小(默认10MB)max-size: 10MB#文件保存周期(默认7天,七天之后就会删除)max-history: 7#日志输出格式pattern:#在控制台输出的日志格式console: -%d{yyyy-MM-dd HH:mm:ss} - %clr(%-5level) - [%thread] - %logger{50} -- %clr(%msg) %n#在文件输出的日志格式file: '%d{yyyy-MM-dd hh:mm:ss} %-5level [%thread] %logger{50} -- %msg %n'#spring boot主配置
spring:#开启控制台日志彩色输出功能output:ansi:enabled: always

日志格式

#日志记录
logging:#日志输出格式pattern:#在控制台输出的日志格式console: -%d{yyyy-MM-dd HH:mm:ss} - %-5level - [%thread] - %logger{50} -- %msg %n#在文件输出的日志格式file: '%d{yyyy-MM-dd hh:mm} %-5level [%thread] %logger{50} -- %msg %n'

日志输出格式:

   1) %d 日志输出时间
   2) %-5level 日志级别,并且使5个字符靠左对齐(从左显示5个字符宽度)
   3) %thread 线程名
   4) %logger{50} 日志输出者名字(全类名),最长50个字符,否则按照句点分隔
   5) %msg 日志消息
   6) %n 换行符


配置日志格式时遇到的异常:
Caused by: while scanning for the next token
found character ‘%’ that cannot start any token. (Do not use % for indentation)
in ‘reader’, line 26, column 14:
console: %d{yyyy-MM-dd HH:mm:ss} %-5level …

异常原因:
yml配置文件中(缩进不能使用%开头),而配置logging.pattern.console属性值时以%开头了,所以报错

解决方案:

使用''包裹起来 或者 在首个%前随便加些字符(只要不让%开头即可)

将
logging:#日志输出格式pattern:#在控制台输出的日志格式console: %d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} -- %msg %n
改成
logging:#日志输出格式pattern:#在控制台输出的日志格式console: '%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} -- %msg %n'
或者改成
logging:#日志输出格式pattern:#在控制台输出的日志格式console: -%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{50} -- %msg %n

日志级别

   1) level有七个级别,由低到高:trace < debug < info < warn < error < fatal < off

   2) spring boot默认使用info日志级别,如果我们不配置-则使用默认该级别

   3)只有指定级别及更高级别的日志会生效,低于指定级别的日志不会生效

#日志记录
logging:#日志级别level:#可以调整不同目录的日志级别(注意:必须指定包,否则报错)root: infocom.cd.example.one: tracecom.cd.example.two: debugcom.cd.example.three: info

日志输出到控制台

spring boot日志默认会输出到控制台,所以并不需要我们做过多配置。但不过不喜欢控制台默认日志格式,则可以使用logging.pattern.console属性配置

#日志记录
logging:#日志输出格式pattern:#在控制台输出的日志格式console: -%d{yyyy-MM-dd HH:mm:ss} - %-5level - [%thread] - %logger{50} -- %msg %n

控制台输出日志高亮显示
   1)控制台输出默认是全黑显示,为了提高可读性,我们可以配置日志高亮显示

   2)配置spring.output.ansi.enabled属性开启控制台彩色输出功能

   3)配置控制台日志格式时,使用%clr()彩色转换器对输出文本着色,也可使用%clr(){颜色}来指定使用的颜色(如%clr(){blue})

#spring boot主配置
spring:#开启控制台日志彩色输出功能output:ansi:enabled: always#日志记录
logging:#日志输出格式pattern:#在控制台输出的日志格式console: -%d{yyyy-MM-dd HH:mm:ss} - %clr(%-5level) - [%thread] - %logger{50} -- %clr(%msg) %n


)注意:输出到文件的日志格是无法高亮的,所以不要使用%clr()彩色转换器对输出到文件的日志文本着色,不然%clr()会被转义,看起来有点像乱码的感觉

日志输出到文件

   1) 默认情况下,Spring Boot只会在控制台中输出日志信息,不写入日志文件。

   2)如果除了在控制台输出外,还想写入日志文件中,则可以设置一个logging.file.namelogging.file.path属性

官网有一段描述:
   1)如果logging.file.namelogging.file.path属性都不指定,那么日志仅在控制台记录。

   2)指定logging.file.namelogging.file.path属性,日志就会写入日志文件。指定一个属性即可,如果两个都指定,那么只有logging.file.name属性生效

   3)logging.file.name属性用于指定日志文件完整路径(包含文件名),logging.file.path属性用于指定日志文件目录路径(不包含文件名,使用spring boot默认日志文件名spring.log)。

两个属性都是用于将日志记录到日志文件中,那我们该使用哪个属性呢?
   1)如果不想使用spring boot默认的日志文件名spring.log,就使用logging.file.name属性

   2)如果要使用spring boot默认的日志文件名spring.log,就使用spring.file.path

#日志记录
logging:#日志文件file:#日志文件完整路径(包含日志文件名)name: D:\idea\logs\example-logging.log#日志文件目录路径(spring boot默认使用spring.log作为日志文件)path: D:\idea\logs#文件大小(默认10MB)max-size: 10MB#文件保存周期(默认7天,七天之后就会删除)max-history: 7#日志输出格式pattern:#在文件输出的日志格式file: '%d{yyyy-MM-dd hh:mm:ss} %-5level [%thread] %logger{50} -- %msg %n'

   3)每天凌晨后,spring boot都会将前一天的日志文件进行打包压缩



spring boot—默认日志框架配置相关推荐

  1. Spring Boot + Log4j2 日志框架配置 (Maven)

    参考Spring Boot官方文档 日志部分 Spring Boot默认情况下,当使用"Starters" 使用Logback输出日志 , 还包括适当的Logback路由, 确保其 ...

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

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

  3. Spring boot默认日志配置

    默认日志配置 查看依赖包 Logging Base.xml 基本配置 Defaults.xml 默认配置

  4. java logback策略输出无效,如何修改覆盖spring boot默认日志策略logback详解

    背景 Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback ...

  5. Spring boot切换日志框架

    切换日志框架 可以按照,SLF4J日志适配图,进行切换 slf4j+log4j 切换为,slf4j+log4j方式 <dependency><groupId>org.sprin ...

  6. Spring Boot统一日志框架

    在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析.在 Java 领域里存在着多种日志框架,如 JCL.SLF4J.Jboss-logging.jUL.log4j. ...

  7. 12. Spring Boot统一日志框架

    在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析.在 Java 领域里存在着多种日志框架,如 JCL.SLF4J.Jboss-logging.jUL.log4j. ...

  8. Spring Boot中日志框架的使用——Logback

    在SpringBoot中可以使用的日志框架有很多,这里选用的是Logback,SpringBoot的version是2.1.7 准备工作 第一步先添加一个依赖 <dependency>&l ...

  9. spring boot mybatis 日志打印配置

    关于springboot日志配置的文章挺多的在此不做赘述,可参考博客: http://tengj.top/2017/04/05/springboot7/ 这里我要说的是关于日志打印等级过滤.sql打印 ...

最新文章

  1. Zencart获取PayPal PDT Token参数教程方法
  2. python错误-新手常见Python错误及异常解决处理方案
  3. css选择器 nth-child
  4. Java中带有JWebSocket的WebServerSocket
  5. JSP页面元素,内置对象及request详解
  6. PG13用pg_rman进行备份恢复
  7. 在c语言中逗号运算符若不带括号,详解shell脚本括号区别--$()、$「 」、$「 」 、$(()) 、「 」 、「[ 」]...
  8. 读书笔记五:TCP/IP详解之RARP逆地址解析协议
  9. ANSYS SPEOS VRXPERIENCE-基于物理特性的智能驾驶传感器高精度仿真
  10. C# int和byte[]之间的互转
  11. uniapp 微信小程序 弹窗 用户授权
  12. 定时器 java qua_Quartz定时任务调度机制解析(CronTirgger、SimpleTrigger )
  13. 计算机中人民币符号在哪儿,钱的符号电脑怎么打(人民币符号怎么输入)
  14. EDM邮件群发:群发邮件不进垃圾箱的独家秘笈
  15. 整活~使用webAI做一个网页AR吃豆人小游戏
  16. Html与css步入新手村
  17. 在EXCEL下用VBA编程提高人事数据的管理效率
  18. Java面试题:GC 是什么? 为什么要有GC?
  19. HTML报错:UncaughtTypeError
  20. 医学心脏数据集分割建模实战

热门文章

  1. mavros 基于体轴坐标系下的无人机行人跟踪
  2. 标题文字超出2行 则隐藏后面显示省略号
  3. BootstrapTable静态刷新表格
  4. BootstrapTable入门Demo
  5. 使用Python音频双通道分离
  6. Qt Dialog捕捉鼠标移动事件
  7. iOS convertRect:view.frame toView: x 异常翻倍?
  8. poj1113/hdu1348(凸包。。。两个网站上的输入输出有点出入)
  9. android小细节
  10. hdu 1525 博弈