2, Apply the basic selection rule,如果log请求的阈值和高于配置的阈值,那么放弃处理该log。
3, Create a LoggingEvent object,logback会构建一个LoggingEvent对象,包含了所有的请求参数。其中有些参数可能是延迟加载的。
4, Invoking appenders,logback调用doAppend方法。
5, Formatting the output,layout会把LoggingEvent对象按固定格式格式化并返回字符串形式,像SocketAppender这样的方法不会返回字符串,相似的只会把它序列化。
6, Sending out the LoggingEvent,把最终形式打印到对应的目的地址。
流程图见这里http://logback.qos.ch/manual/underTheHood.html
最后还是通过性能讨论结束这篇短文,性能的东西,我们不去看代码的话,是无法估计复杂度的变化的。那么就官网上给出的3条提示,第一点针对参数构建,第二点针对level的定位,这个在看过代码后,发现确实精简了,尤其是那种复杂的hierarchy结构没有了,线性的链条运行起来明显会快,算是去除冗余做了优化吧。第3条针对说format和write会快,尤其是format被大力投入改进,这个在看过代码后,可以做个比较。
本文算是一篇半自主半翻译的文章吧,重在学习。
参考文献:
http://logback.qos.ch/manual/introduction.html
摘自 Change Dir