logback介绍:
由slf4j创始人设计的开源日志组件,性能比slf4j更好;分为三个模块(都可以在网上下载)------
logback-core(logback的核心基础,以它为基础可以构建其他自己的模块)、logback-access(可以和tomcat等servlet容器集成,提供日志的HTTP界面
化访问功能)、logback-classic(是slf4j的改进版,完整实现了slf4j API,使logback可以轻松在各个日志框架之间来回转换,无需变动源码);成功搭建
logback,logback.xml文件是重要的一步,src目录下必须有logback.xml。
logbacak.xml ------ logback的核心配置文件,负责控制logback日志系统的所有特性。
logback.xml文件主要三部分:
· Loggers(日志记录器,把日志关联到指定context上,也可以指定日志级别)
· Appenders(输出目的地,指定日志输出目的地,包括,控制台、文件、数据库等等)
· Layouts(输出日志格式,把事件转换成字符串,格式化日志信息输出,从0.9.19开始逐渐被代替)
从logback0.9.17开始,标签不区分大小写,但是以什么形式开头,就要以什么形式关闭。
编写logback.xml文件,不外乎分清各个标签的作用和意思,基础标签如下:
1、 <configuration> 配置文件的最基本标签,了解就好,内置三个属性scan(默认true,配置文件发生修改后,自动重新加载)、scanPeriod(建立在scan属性ture前提下,设置重新加载的时间间隔,默认60s)、debug(默认false,打印logback内部日志信息,实时查看logback运行状态);( 包含0个或多个<appender>、<logger>,最多1个<root> )
1.1 <logger> 具体规定某个包/类的打印级别,以及指定<appender> 【可选】
1.1.1 属性:· name --- 指定受规定的包/类路径
· level --- 受限制的级别
· addtivity --- 是否向上级logger传递打印信息,默认True
1.1.2 <appender-ref ref= "CONSOLE/FILE"> 指定appender输出,多地使用该标签会导致日志重复记录
2、<appender> 控制logback的输出位置和格式【两个输出位置:控制台 / 指定文件】
<appender name="CONSOLE" class="ch.qos.logback.coore.ConsoleAppender"> 指定输出位置为控制台的固定格式
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 指定文件的固定格式
· class="logback-core的jar包内提供该操作的类"
【对于输出指定在控制台的配置标签】
2.1 <target> 控制输出的模式,一般两种 System.out / System.err 以输出 / 错误(就是红色字体)的形式打印
2.2 <encoder> 内置作用:把日志信息转换成字节数组,再把字节数组写入输出流,pattern是其子标签
2.2.1 <pattern> 指定每条日志信息的输出格式
举例: %d{yyyy-MM-dd HH:mm} [%-5level] %c [%thread] : %msg %n ,格式自定义,更多要求可上网查找对应参数
解释:(1)%d 表示日期格式,{}内设置日期格式,默认是yyyy-MM-dd
(2)%-5level 表示日志级别
(3)%c 即%class,表示日志信息产生的类 | %logger{n} 也表示产生的类,当可以根据n略输出类的全名(n表示字符数)
(4)%thread 表示该日志程序的线程名/方法名
(5)%msg 日志具体信息内容
(6)%n 换行符
<!-- 指定输出到控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<targe>System.out</targe>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm} [%-5level] %c [%thread] : %msg %n
</pattern>
</encoder>
</appender>
【对于输出指定在文件中的配置标签】
2.4 <charset> 指定文件的编码,一般是utf-8 【encoder的子标签】
2.5 <file> 指定存放日志的文件路径
2.6 <rollingPolicy> 指定日志的拆分和压缩规则
属性 class="ch.qos.logback.core.rolling.RecordingFileAppender" | "滚动策略"
1.6.1 <MaxFileSize> 设定文件最大值(日志内容达到最大值就会开始拆分)
1.6.2 <fileNamePattern> 拆分文件的具体格式和路径
· %i 表示拆分的次数,从0开始
<!-- 指定输出到文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern> %d{yyyy-MM-dd HH:mm} [%-5level] %logger{5} [%thread] == %msg %n </pattern> <charter>utf-8</charter> </encoder> <!-- 指定输出路径,要先创建好该路径 --> <file>D:\homework\curricular\Logback_input\LogbackRecord.log</file> <rollingPolicy> <!--设置日志文件最大内存,达最大值开始拆分--> <MaxFileSize>50KB</MaxFileSize> <!-- 拆分文件的路径+命名格式--> <FileNamePattern> D:\homework\curricular\Logback_input\%d{yyyyMMdd_HHmm }.log%i.tar </FileNamePattern> </rollingPolicy> </appender>
3、<root> 控制基础日志输出级别的标签【即使配置了appender,不配置root使配置和对应目的地关联,依旧不会有日志输出到对应位置】
<root level="日志级别"> 控制日志打印
【扩展——日志级别(对应Logger对象的方法):ERROR>WARN>INFO>DEBUG>TRACE(大小写都可以),不规定级别时,默认级别是debug;
全局控制级别:ALL和OFF ,输出所有或一条都不输出
作用:控制日志信息的输出,只有大于或等于设定的级别的日志信息】
3.1 <appender-ref ref="CONSOLE / FILE" /> 设置关联的位置,只有加了该标签,才会在对应位置按照root设定等级进行信息输出
<!--默认debug--> <root level=""> <appender-ref ref="CONSOLE " /> <appender-ref ref=" FILE" /> </root>
【以上,完整的基础logback.xml文件】
· 更多注意事项