SpringBoot 日志系统解析

日志实现框架

常见框架:

  • JUL
  • Logbac
  • Log4j
  • Log4j2

日志实现的抽象层

避免代码的改动影响用户的使用, 常见的:

  • JCL
  • SLF4J

日志发展历程

  • JDK1.3及以前, 通过System.(out | err).println打印, 存在巨大缺陷
  • 解决系统打印缺陷问题出现log4,2015年8月停止更新
  • 受到log4j影响, SUN公司推出java.util.logging即JUL
  • 由于存在两个系统实现, 解决兼容性问题; 推出commons-logging即JCL但存在一定的缺陷
  • log4j作者推出slf4j,功能完善兼容性好,成为业界主流
  • log4j作者在推出log4j后进行新的改进思考推出logback
  • log4j2对log4j的重大升级, 修复已知缺陷,极大提升性能
  • 最佳组合:slf4j + logback(springboot使用), 或者 slf4j + log4j2

日志源码解析

日志实现寻址

日志配置动手实践

SpringBoot日志

日志架构

日志使用方式

  • Logger logger = LoggerFactory.getLogger(xx.class)
  • logger.level()

日志配置

  • scan: 当设置为true时, 配置文件若发生改变, 将会重新加载
  • scanPeriod 扫描时间间隔, 若没给出时间单位默认为毫秒
  • debug: 若设置为true,将打印出logback内部日志信息

configuration子节点

  • contextName: 上下文名称
  • property: 属性配置
  • appender: 格式化日志输出
  • root: 全局日志输出设置
  • logger: 具体包或子类输出设置

configuration上下文属性配置

  • contextName:用来区分不同应用程序的记录,默认为default

  • name: 变量名称 value: 变量值

appender配置

常用的pattern介绍

  • logger {length}: 输出日志的logger名, 可有一个整形参数,功能是缩短logger名
  • contextName | cn: 上下文名称
  • date {pattern}; 输出日志的打印时间, 模式语法与 java.text.SimpleDateFormat 兼容
  • p/le/level:日志级别
  • M/method: 输出日志的方法名
  • r/relative: 从程序启动到创建日志记录的时间
  • m/msg/message: 程序提供的信息
  • n: 换行符

root & logger

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值