深入拆解 Tomcat & Jetty
李号双
eBay 技术主管
38890 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
开篇词 (1讲)
深入拆解 Tomcat & Jetty
15
15
1.0x
00:00/00:00
登录|注册

31 | Logger组件:Tomcat的日志框架及实战

可以改变系统的日志输出服务而不用修改代码
记录日志的API和日志输出的服务分离
JCL (Apache Commons Logging)
SLF4J
Tinylog
Log4j2
Logback
Log4j
JUL (Java Util Logging)
JdkLoggerFormatter
VerbatimFormatter
OnlineFormatter
AsyncFileHandler
FileHandler
Formatter
Level
Handler
Logger
好处
"门面日志"
第三方日志框架
Tomcat的日志模块可以切换成"SLF4J + Logback"
JCL是JULI的日志门面
Tomcat默认的日志模板是JULI
日志配置
Formatter
Handler
LogFactory
DirectJDKLog
示例代码
组件
集群管理
Session管理
日志模块
课后思考
总结
Tomcat + SLF4J + Logback
JULI (Java Util Logging)
Java日志系统
通用模块
Tomcat的日志框架及实战

该思维导图由 AI 生成,仅供参考

每一个系统都有一些通用的模块,比如日志模块、异常处理模块、工具类等,对于 Tomcat 来说,比较重要的通用模块有日志、Session 管理和集群管理。从今天开始我会分三期来介绍通用模块,今天这一期先来讲日志模块。
日志模块作为一个通用的功能,在系统里通常会使用第三方的日志框架。Java 的日志框架有很多,比如:JUL(Java Util Logging)、Log4j、Logback、Log4j2、Tinylog 等。除此之外,还有 JCL(Apache Commons Logging)和 SLF4J 这样的“门面日志”。下面是 SLF4J 与日志框架 Logback、Log4j 的关系图:
我先来解释一下什么是“门面日志”。“门面日志”利用了设计模式中的门面模式思想,对外提供一套通用的日志记录的 API,而不提供具体的日志输出服务,如果要实现日志输出,需要集成其他的日志框架,比如 Log4j、Logback、Log4j2 等。
这种门面模式的好处在于,记录日志的 API 和日志输出的服务分离开,代码里面只需要关注记录日志的 API,通过 SLF4J 指定的接口记录日志;而日志输出通过引入 JAR 包的方式即可指定其他的日志框架。当我们需要改变系统的日志输出服务时,不用修改代码,只需要改变引入日志输出框架 JAR 包。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Tomcat的日志框架及实战文章介绍了Tomcat的日志模块及其实现方式。文章首先介绍了Java的日志框架和门面日志的概念,以及Tomcat默认使用的JULI日志框架。接着详细解释了JULI的实现原理,包括DirectJDKLog、LogFactory、Handler和Formatter等组件。此外,文章还介绍了Tomcat如何与SLF4J和Logback集成,以及如何将Tomcat的日志框架切换成“SLF4J + Logback”。最后,文章提出了一个课后思考问题,引发读者思考和讨论。 总的来说,本文通过介绍日志框架的概念、Tomcat的日志模块实现和切换以及提出课后思考问题,为读者提供了全面的了解Tomcat日志框架的内容。读者可以从中了解到Tomcat默认的日志框架JULI的实现原理,以及如何将其切换成更流行的SLF4J和Logback,为读者提供了实用的技术知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解 Tomcat & Jetty 》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 新世界
    server.tomcat.access-log等参数配置输出方式,输出位置
    2019-07-22
    9
  • 吃饭饭
    查看这个文件就可以吧:spring-boot/1.5.9.RELEASE/spring-boot-1.5.9.RELEASE.jar!/org/springframework/boot/logging/logback/defaults.xml
    2019-07-22
    7
  • z.l
    springboot可以配置切换tomcat默认的日志模块吗?
    2019-07-20
    3
  • 罗力友
    Java 的原生日志系统是每个 JVM 有一份日志的配置文件,这不符合 Tomcat 多应用的场景,所以 JULI 重新实现了一些日志接口。 ——老师,为什么说不符合呀。一个tomcat只能启一个jvm吗?
    2020-08-26
    1
    1
  • QQ怪
    默认应该是输出到控制台吧,配置目录可以输出到文件
    2019-07-20
    1
  • James
    打印在控制台。如果有配置logging.path logging.file就输出到文件上
    2021-04-03
  • 赵达铭
    是不是springboot下.tomcat直接使用springboot指定的日志框架?不知道代码具体在哪体现
    2020-12-16
  • Chuan
    老师,请问下Handler是定义不同的日志输出方式吗?比如FileHandler是用于规定输入到文件,ConsoleHandler用于规定输出到Console?如果配了这两个,是不是会在文件和控制台各输出一份啊?
    2020-03-05
    1
  • Demon.Lee
    老师,及各位小伙伴,你们是如何解决多个app的日志分离问题的,一个tomcat下部署了多个app,想让每个app的日志都打印到独立的app下面,有什么好的实践么,http://logback.qos.ch/manual/loggingSeparation.html
    2020-02-04
    1
  • Demon.Lee
    谢谢老师!
    2020-01-02
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部