LogBack的基本知识和优势.ppt

上传人:sccc 文档编号:5090849 上传时间:2023-06-03 格式:PPT 页数:16 大小:586.51KB
返回 下载 相关 举报
LogBack的基本知识和优势.ppt_第1页
第1页 / 共16页
LogBack的基本知识和优势.ppt_第2页
第2页 / 共16页
LogBack的基本知识和优势.ppt_第3页
第3页 / 共16页
LogBack的基本知识和优势.ppt_第4页
第4页 / 共16页
LogBack的基本知识和优势.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《LogBack的基本知识和优势.ppt》由会员分享,可在线阅读,更多相关《LogBack的基本知识和优势.ppt(16页珍藏版)》请在三一办公上搜索。

1、,1,How to use logback,北航act实验室,Copyright QOS.ch,2,The same basic plumbing only done better.No revolution,only evolution.Faster,smaller,higher gas mileage,and generally more bang for the buck.,Logback的基本结构充分通用,可应用于各种不同环境。目前,logback分为三个模块:Core、Classic和Access。Core模块是其他两个模块的基础。Classic模块扩展了core模块。Classic

2、模块相当于log4j的显著改进版。Logback-classic直接实现了SLF4J API,因此你可以在logback与其他记录系统如log4j和java.util.logging(JUL)之间轻松互相切换。Access模块与Servlet容器集成,提供HTTP访问记录功能,3,Copyright QOS.ch,4,Modular architecture,logback-coreJoran,Status,Context,pattern parsinglogback-classicdeveloper logginglogback-accesscontainer(access)logging,

3、Copyright QOS.ch,5,Access Logging,Definition:Access logThe log generated when a user accesses a web-page on a web server.Logback-access integrates seamlessly with Jetty and Tomcat,Copyright QOS.ch,6,SLF4J in one slide,Copyright QOS.ch,7,Logback 的三个重要组件,Logger、Appender和Layout Logback建立于三个主要类之上:Logger

4、、Appender和Layout。这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程序运行期内控制消息的输出格式和输出目的地。Logger类是logback-classic模块的一部分,而Appender和Layout接口来自logback-core。作为一个多用途模块,logback-core不包含任何logger。,Appender接口里的多数方法都是getter和setting。值得注意的是doAppend()方法,它唯一的参数是类型E的对象。类型E的实际类型视logback模块的不同而不同。在logback-classic模块里,E可能是“ILoggingEven

5、t”类型;在logback-access模块里,E可能是“AccessEvent”类型。Layout负责把事件转换成字符串。Layout接口的format()方法的参数是代表任何类型的事件,返回字符串。Logback-classic只处理ch.qos.logback.classic.spi.ILoggingEvent类型的事件。Logback-access的大多数layout都改变自logback-classic。Logback-access和logback-classic有各自的用途,但一般提供类似的功能。,Copyright QOS.ch,8,Copyright QOS.ch,9,Logb

6、ack的工作原理,1.取得过滤链(filter chain)的判定结果 如果TurboFilter链存在,它将被调用。Turbo filters能够设置一个上下文范围内的临界值,这个临界值或者表示过滤某些与信息有关(比如Marker、级别、Logger、消息)的特定事件,或者表示与每个记录请求相关联的Throwable。如果过滤链的结果是FilterReply.DENY,则记录请求被抛弃。如果结果是FilterReply.NEUTRAL,则继续下一步,也就是第二步。如果结果是FilterReply.ACCEPT,则忽略过第二步,进入第三步。,2.应用基本选择规则 Logback对logger的

7、有效级别与请求的级别进行比较。如果比较的结果是记录请求被禁用,logback会直接抛弃请求,不做任何进一步处理。否则,继续下一步。3.创建LoggingEvent对象 记录请求到了这一步后,logback会创建一个ch.qos.logback.classic.LoggingEvent对象,该对象包含所有与请求相关的参数,比如请求用的logger、请求级别、消息、请求携带的异常、当前时间、当前线程、执行记录请求的类的各种数据,还有MDC。注意有些成员是延迟初始化的,只有当它们真正被使用时才会被初始化。MDC用来为记录请求添加额外的上下文信息。,Copyright QOS.ch,10,4.调用ap

8、pender 创建了LoggingEvent对象后,logback将调用所有可用appender的doAppend()方法,这就是说,appender继承logger的上下文。所有appender都继承AppenderBase抽象类,AppenderBase在一个同步块里实现了doAppend方以确保线程安全。AppenderBase的doAppender()方法也调用appender关联的自定义过滤器,如果它们存在的话。自定义过滤器能被动态地关联到任何appender,另有章节专门讲述它。5.格式化输出 那些被调用了的appender负责对记录事件(LoggingEvent)进行格式化。然而

9、,有些但不是全部appender把格式化记录事件的工作委托给layout。Layout对LoggingEvent实例进行格式化,然后把结果以字符串的形式返回。注意有些appender,比如SocketAppender,把记录事件进行序列化而不是转换成字符串,所以它们不需要也没有layout。6.发送记录事件(LoggingEvent)记录事件被格式化后,被各个appender发送到各自的目的地。,Copyright QOS.ch,11,整个logback流程的UML图,Copyright QOS.ch,12,Copyright QOS.ch,13,Joran:a bowl of fresh a

10、ir,Given rules(patterns&actions)it can configure any object.Its generic(can be used in your own projects)Joran can learn new rules on the fly.With its implicit rules,you dont even have to write rules.It can do partial replay.,Logback依赖Joran。Joran是个成熟、灵活和强大的配置框架。Logback模块的许多能力都只能在Joran帮助下实现。Logback的默

11、认配置机制是调用JoranConfigurator对classpath上的默认配置文件进行处理。不管出于什么理由,如果你想重新实现logback的默认配置机制的话,你可以直接调用JoranConfigurator。,Copyright QOS.ch,14,Copyright QOS.ch,15,Logback的一些扩展功能,SocketAppender:到目前为止,我们讨论的appender都只能输出到本地资源。而SocketAppender被设计为通过序列化ILoggingEvent实例把记录输出到远程实体。JMSAppenderBase:JMSAppenderBase类与SocketApp

12、ender完成相同概念的任务,只是基于JMS API而不是TCP套接字。JMS即Java消息系统API为面向消息的中间件(MOM)产品提供抽象层。JMS的一个关键架构概念就是解耦消息生产者和消息消费者。发送者不需要等待接收者处理完消息,有消息时接收者才会消费消息。这样的消息称为是异步传递的SMTPAppender:SMTPAppender在固定大小的缓冲里积累记录时间,当用户指定的事件发生后,就通过email发出这些事件。默认情况下,email发送是由级别为ERROR或更高级别的记录事件触发的。DBAppender:DBAppender把记录事件写入数据库的三张表。三张表分别是logging_

13、event、logging_event_property和logging_event_exception。在使用DBAppender之前,这三张表必须已经被创建。,PatternLayout的配置方式与在logback-classic里的PatternLayout基本相同。但它提供了一些额外的格式转换符,适合记录那些只存在于HTTP servlet请求和HTTP servlet响应的信息。映射诊断环境(Mapped Diagnostic Context)Logback的设计目标之一是审查和调试复杂的分布式应用程序。真实世界的多数分布式系统需要同时处理多个客户端。在一个典型的多线程方式实现的分布式系统里,不同的线程处理不同的客户端。区分不同客户端的记录输出的一个可行的但不好的方法是为每个客户端都创建新的、独立的logger。这种技术使logger的数量增多且大大增加了管理开销。一个轻量的技术是为客户端的每个记录请求添加唯一戳(uniquely stamp)Logback在SLJ4J里使用了这种技术的一种变体:映射诊断环境(MDC)为了给每个请求添加唯一戳,用户把环境(context)信息放进MDContext),Copyright QOS.ch,16,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号