ismohney-and-curlie

写一个自己的logback.xml文件

logback介绍:

  由slf4j创始人设计的开源日志组件,性能比slf4j更好;分为三个模块(都可以在网上下载)------

(1)logback-core(logback的核心基础,以它为基础可以构建其他自己的模块)

(2)logback-access(可以和tomcat等servlet容器集成,提供日志的HTTP界面

化访问功能)

 (3)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文件,不外乎分清各个标签的作用和意思,基础标签如下

【本篇jar版本是1.2.3,slf4j是1.7.26,版本不同时,logback.xml配置稍有不同需要注意】:

1、 <configuration>  配置文件的最基本标签,了解就好(包含0个或多个<appender>、<logger>,最多一个<root>)

内置三个属性

  · scan(默认true,配置文件发生修改后,自动重新加载

  · scanPeriod(建立在scan属性ture前提下,设置重新加载的时间间隔,默认60s)

  · debug(默认false,打印logback内部日志信息,实时查看logback运行状态);

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的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">
        <target>System.out</target>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <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.SizeAndTimeBasedRollingPolicy"   |  "滚动策略",一定要写
  1.6.1  <MaxFileSize>  设定文件最大值(日志内容达到最大值就会开始拆分)
  1.6.2  <fileNamePattern>  拆分文件的具体格式和路径
    · %i 表示拆分的次数,从0开始
<!-- 指定输出到文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>UTF-8</charset>
<pattern>
%d{yyyy-MM-dd HH:mm} [%-5level] %logger{5} [%thread] == %msg %n
</pattern>
</encoder>
<!-- 指定输出路径,要先创建好该路径 -->
<file>D:/homework/curricular/Logback-input/LogbackRecord.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--设置日志文件最大内存,达最大值开始拆分-->
<maxFileSize>50KB</maxFileSize>
<!-- 拆分文件的路径+命名格式-->
<fileNamePattern>
D:/homework/curricular/Logback-input/LogbackRecord%d{yyyyMMdd-HHmm }%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文件】

· 更多注意事项

二、配置效果

 · 创建Logback对象

  · 默认level=debug,所以不会输出5555

  · 查看文件路径下【已测试多次,生成压缩文件】

posted on 2023-04-01 19:30  ooyls  阅读(130)  评论(0编辑  收藏  举报

导航