写一个自己的logback.xml文件

发布时间 2023-04-01 19:36:06作者: ooyls

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文件】

· 更多注意事项