- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SpringBoot 源码解析——SpringBoot 中的日志基础服务
原创zhisheng
2021-07-19
收录于话题 #SpringBoot 源码解析 8个内容
点击上方 关注,?星标或置顶一起成长
免费送 1024GB 精品学习资源?
背景
在看 spring-boot module 的时候,看到有一个特地的 logging 的 package,由于日志是平常接触的格外多的一个东西,不只仅是应用本身的日志需要关怀,假如是要去做一个统一的日志收集和管理系统,也是一件很费心思的事情,比如:
可能要考虑日志打印的格式是什么样子的;
采集日志的时候怎样能够一行一行的采集;
对于那种堆栈特别日志如何采集收集在一起;
日志文件满了后消灭滚动到新文件后如何识别并采集新的日志文件;
假如应用在消灭特别的情况下疯狂的打印日志,那么采集能否连续,连续的话,采集工具会不会消灭功能瓶颈;
日志传输过程中如何应对海量的日志数据;
对于不同应用打印出来的不同日志格式,如何做日志的 ETL;
该选择什么数据存储引擎来存储海量的日志数据;
如何处理海量日志数据写入存储引擎很慢的问题;
对于海量的日志数据存储保留的时间如何选择;
对于日志数据,如何对外供应搜索的功能;
日志数据如何呈现才会更友好;
上面的多个问题都是本人工作和项目经受遇到和处理过的问题,本人亲身很有体会和感悟,所以觉得还是有必要认真的看看日志这块的内容。
日志的作用
供应项目应用运转的具体信息,例如方法的入参、运转的特别记录等。在 LogFile 类中定义的两个属性分别是:
file:表示日志文件的名称,依靠 ?系统环境参数指定
path:表示日志文件存储的路径,依靠 logging.file.path?系统环境参数指定
日志级别
在 LogLevel 枚举类中定义了下面几种级别:TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF。在 LoggerConfiguration 类中定义类日志的名字、配置的日志级别以及生效的日志级别。在 LoggingSystem、LoggingSystemProperties 和 AbstractLoggingSystem 分别定义了日志系统的常见类型(Java Log/log4j/log4j2/logback),猎取对应的日志类型,包含了定义它的一些系统属性
以及如何依据定义的类型去通过类加载的方式使用该种(Java log/log4j/logback)去打印日志。在 DeferredLog 类实现了 Log 接口,里面封装了常见我们打印日志的一些方法
_
日志品种
首先这里列出了三种:
下面分别来讲解一下这几种的区分。
Java Log
对应 JavaLoggingSystem 类,该类承继自 AbstractLoggingSystem 笼统类。
在该类中做了类的初始化之前的一些预备工作、加载日志上下文,加载配置文件,然后进行设置日志级别。在该类中引用的 Level、LogManager、Logger 都是 java.util.logging? 包下的。
真正打印 format 的是靠着 SimpleFormatter,比如假如使用这种日志打印的话,那么你要引入的配置文件就是 perties,它的内容或许可能如下:
SimpleFormatter 格式如下:
在 SpringBoot 中定义的日志级别名称和 Java 中的有点不全都,它们之间的对应关系如下图所示:
Log4j2
Log4J2LoggingSystem 承继自 Slf4JLoggingSystem,它里面的日志级别名称和 SprinBoot 的是全都的。在该类中找的日志文件有下面这些:
比如 log4j2.xml 文件:
对于把握台的不同级别的日志显示不同的颜色,这里还特地有一个 ColorConverter 类进行转换:
Logback
LogbackLoggingSystem 该类也是承继自 Slf4JLoggingSystem,次要是由于 SLF4J (Simple Logging Facade For Java) 它是一个针对于各类 Java 日志框架的统一 Facade 笼统。SLF4J 定义了统一的日志笼统接口,而真正的日志实现则是在运转时打算。对应的日志级别名称如下:
通常读取的配置文件是 logback.xml,该文件的定义如下:
包含了 base.xml,其内容如下:
其中又包含了上面几个文件,这些文件的内容都在 spring-boot module 的 resource 名目下:
您可能关注的文档
最近下载
- 2025年释放AI时代的潜力报告(英文版).pdf VIP
- 七年级语文第一次月考卷(全解全析)(苏州专用)-A4.docx VIP
- 2025-2030中国军用卫星有效载荷和子系统行业市场发展趋势与前景展望战略研究报告.docx VIP
- 五粮液面试题库及答案.doc VIP
- 2024上海市公务员考试【省直、行测A类、C类、申论A卷】4套真题及答案.doc VIP
- 蒸压加气混凝土砌块薄层砌筑.docx VIP
- 人教版七年级语文上册第二单元测试题及答案.doc VIP
- 16J604 塑料门窗(建筑图集).docx VIP
- 【最新版】人教版七年级上册语文第一单元测试卷(含答案).pdf VIP
- 眭氏源流及宗亲分布.docx VIP
文档评论(0)