龙空技术网

一文看懂Logback的简单介绍

Java猿 1100

前言:

如今你们对“logback压缩日志内容丢失”大约比较着重,大家都需要了解一些“logback压缩日志内容丢失”的相关资讯。那么小编在网络上收集了一些有关“logback压缩日志内容丢失””的相关知识,希望小伙伴们能喜欢,咱们快快来学习一下吧!

Logback的使用

Logback是log4j的改良版,相比log4j,logback是有优势的,后面会简单介绍。

Logback简介

1、logback和log4j是同一个作者,logback可以看作是log4j的升级版

2、logback分为三个模块, logback-core, logback-classic 和logback-access,其中 logback-core是核心,其他两个模块依赖core,这个logback-classic是log4j的改善版本,并且原生实现了SLF4J门面(具体参考前文:SLF4J实现原理(简单分析))。模块logback-access可以集成于Servlet容器,比如Tomact和Jetty。

3、你可以基于logback-core自己创建其他的模块。

Logback相比log4j的优势,

1、比log4j更快,重写了内核,在一些关键路径上性能提升10倍,内存占用也更少。

2、经过大量的测试,和log4j测试不在一个量级。

3、logback-classic是SLF4J的实现,切换其他日志框架非常方便,

4、文档丰富并且不断更新,支持Groovy风格的配置文件

6、配置文件自动重新加载,如果更新了配置文件,logback-classic可以自动重新加载。

7、自动删除日期较老的日志文件,maxHistory属性,你可以控制已经产生日志文件的最大数量。如果设置maxHistory为12,那那些log文件超过12个月的都会被自动移除。

8、自动压缩归档的日志文件,压缩文件是异步进行,不影响应用。

9、配置文件可以处理不同的环境开发,测试,生产),这样一个配置文件就可以适应多个环境。

10、SiftingAppender(一个非常多功能的Appender)

它可以用来分割日志文件根据任何一个给定的运行参数。如,SiftingAppender能够区别日志事件跟进用户的Session,然后每个用户会有一个日志文件。

Logback的简单应用,

在上文SLF4J实现原理(简单分析)中有个简单的例子,此文不再重复。

Logback的配置

配置加载的顺序,上下文初始化的时候会调用ContextInitializer,在这个类中的方法findURLOfDefaultConfigurationFile是用来加载默认的配置文件,

先从系统的属性中获取键为logback.configurationFile的值,如果有,就加载指定的配置文件,如果没有设置,会在classpath中找文件logback-test.xml如果logback-test.xml不存在,搜索logback.groovy配置文件如果logback.groovy不存在,最后查找logback.xml如果以上配置文件不存在,会用SPI的方式加载classpath下的Configurator接口的实现类。最后,如果以上都没有成功,会默认创建BasicConfigurator实例,BasicConfigurator默认配置了ConsoleAppender,也就是只能输出到控制台。

logback的配置

1、最简单的使用就是不使用任何配置文件,用默认的Console输出日志,

2、使用logback.xml配置文件

最基本的配置是一个configuration里面有零个或多个appender,零个或多个logger和最多一个root标签组成。(logback是对大小写敏感的)

logback的配置文件组成

configuration是根标签,有三个属性debug,scan和scanPeriod,debug=true时会打印出logback内部的状态,scan=true表示如果配置修改了,会重新加载模式为true,scanPeriod为扫描时间间隔。logger标签用来设置某一个包或具体的某一个类的日志输出,有个level属性,用来设置日志级别,可选值为TRACE,DEBUG,INFO,WARN, ERROR, ALL 和 OFF。logger标签可以包括零个或者多个appender-ref标签。root标签配置root logger,这个标签和logger一样有个level,也有零个或者多个appender-ref标签。Appender标签,负责写日志的组件,有两个必要属性name和class,name指定appender名称,class指定appender的全限定名。这个Appender可以有零个或者多个layout,encoder和filter标签。appender的class 类型主要有三种:ConsoleAppender、FileAppender、RollingFileAppender。

appender标签

每个标签都有很多细节,就不在本文啰嗦的写了,如果需要请参考logback的官网。写一个简单的logback的开发配置

logback配置

如果项目中有复杂的需求,可以去官网找相应的文档,不变的永远是变化,软件可能随时升级,官方的文档也会不断的更新。

标签: #logback压缩日志内容丢失