zoukankan      html  css  js  c++  java
  • 后端——框架——日志框架——logback——《官网》阅读笔记——第三章节(配置文件)

    第三章节介绍日志框架的配置,分为两个部分,”auto”配置项(默认配置),配置文件。

    本章的内容比较简单,因为必填的配置项只有三个,logger,root,appender。其中appender的配置稍微复杂一些,logger和root都比较简单。

    默认配置部分的内容如下:

    • 查找配置文件的步骤。
    • 默认的配置项。

    配置文件的内容如下:

    • Configuration标签的各个属性的含义
    • 手动配置的每一个标签项,它们都是Configuration标签的子标签。

    1、查找配置文件步骤

    查找配置文件的步骤如下:

    1. 首先在classpath路径下查找logback-test.xml,文件不存在进入第二步
    2. 其次查找logback.groovy,文件不存在进入第三步
    3. 之后查找logback.xml,文件不存在进入第四步
    4. 之后查找ch.qos.logback.classic.spi.Configurator同包下的实现类,不存在进入第五步
    5. 使用Configurator接口的默认实现类BasicConfigurator。

    在第一章节中已经提到过这部分内容,此处不再重复。

    配置文件的位置可以通过设置logback.configurationFile来指定,而且必须指定该变量为JVM系统变量或者是classpath下的变量。

    注:logback-test.xml为横线不是下划线。

    2、默认的配置项

    默认的配置项有

    设置root logger的名称为Logger.ROOT_LOGGER_NAME,该常量的值为”ROOT”,默认的Appender为ConsoleAppender,默认的日志级别为DEBUG。

    设置ConsoleAppender为默认Appender,它的名称为”STDOUT”,它默认依赖的Layout类型为PatternLayoutEncoder。

    PatternLayoutEncoder默认的格式为:%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}

    3、配置文件

    3.1   configuration

    表格2- 1 Configuration标签

    描述

    最外部的标签,只有一个

    属性

    属性:debug

          说明:开启日志框架的调试模式。

          值:true或者false。默认值为false。

          是否必填:否

     

    属性:scan

          说明:当配置文件修改时,重新加载配置文件。

          值:true或者false。默认值为false。

          是否必填:否

     

    属性:scanPeriod

          说明:指定扫描的间隔,格式为num  unit。其中num为任意合理的数值,unit为milliseconds,seconds,minutes,hours。如果不指定unit,默认值为milliseconds。

          是否必填:否

          示例: 30 minutes。

     

    属性:packingData

          说明:当有异常发生时,会在每一行错误信息的后面添加它所对应的jar包名称。因为有影响性能,一般不指定。

          值:true或者false。默认值为false。

          是否必填:否

    子标签

    1. 1个root
    2. 0到多个logger
    3. 0到多个appender
    4. 1个contextName
    5. 0到多个include
    6. 0到多个property
    7. 0到1个ShutdownHook
    8. 0到多个statusListener。
    9. 0 到1个timestamp。
    10. 0到多个contextListener。
    11. 其他的一些语法,if,else,then。

    3.2   root

    表格2- 2 root标签

    描述

    定义root logger

    属性

    与logger的属性相同,没有additivity属性。

    子标签

    1到多个appender,默认指定consoleAppender。

    注意事项

    Root的级别不应该太低,否则日志信息会很多。导致垃圾的信息很多。

    示例

    <root level="error">

             <appender-ref ref="STDOUT" />

    </root>

    // STDOUT的全称为standard out。

    3.3   logger

    表格2- 3  logger标签

    描述

    配置logger标签。

    属性

    属性:name

          说明:logger的名称。

          值:包名称或者类全名。

          是否必填:是

     

    属性:level

          说明:日志的级别。

          值:trace,debug,info,warn,error中的一个。

          是否必填:否,可以从父类继承。

     

    属性:additivity

          说明:默认情况下子类的log事件会传递到它的父类中,如果子类有appender,父类也有appender,则会同时输出。导致日志信息重复。设置该属性为false,可以阻止这种行为。类似于页面中DOM的event冒泡。

          值:true或false,默认值为true。

          是否必填:否。

    子标签

    0到多个appender。如果没有时,会从父类继承。

    示例

    <!—父类appender -->

    <logger name=”A” level=”debug”/>

    <!—子类appender -->

    <logger name=”A.B” level=”info” additivity=”false”/>

    3.4  appender

             此处略。第四章节详细介绍。

    3.5  contextName

    表格2- 4  contextName标签

    描述

    为上下文命名,这个变量会传入ILoggingEvent,在配置日志格式时,可以获取该值并输出到终端。

    注意事项

    它的主要作用是当一个项目对应多个LoggerContext时,用于区分日志属于哪个LoggerContext,通常情况用不到,因为项目与loggerContext是一对一的关系。

    示例

    <contextName>logbackTest</contextName>,在日志中对应cn。

    3.6   property

    表格2- 5 property标签

    描述

    定义变量,加载properties属性文件。

    属性

    属性:name

          说明:属性名称,定义之后可以通过${name}使用变量。

          值:任何字符串。

          是否必填:否

     

    属性:value

          说明:属性值。

          值:任何字符串。

          是否必填:当指定属性name时必填。

     

    属性:scope

          说明:属性的作用域,local从配置文件开始到结尾,context在整个指定contextName的上下文中有效,system从虚拟机开始运行到结束运行。

          值:local,context,system中的一个,不指定默认为local。

          是否必填:否

     

    属性:file,resource,url

          说明:与上面的属性不能同时指定,它代表加载一个属性文件。

    当属性为file时表示从文件系统中加载,resource从classpath中加载,

    url表示一个网络资源。Classpath最为常见。

          值:file时需要指定项目的相对路径,classpath时为编译的相对路径,url表示url链接。

          是否必填:否

    子标签

    注意事项

    属性file与resource的区别。

    示例

    // 定义一个变量file_dir,表示日志文件的存放位置

    <property  name=”file_dir”  value=”D:logs”>

    // 加载resources/prop/logback.properties资源文件时

    <property  file=”src/main/resources/prop/logback/properties”>

    <property  resource=”prop/logback.properties”>

    3.7  include

    表格2- 6  include标签

    描述

    将logback.xml拆分为多个子配置文件。

    属性

    属性:file,url,resource

         说明:同property中的属性。

          值:子配置文件的路径。

          是否必填:否

    示例

    <!-- 定义appender -->

    <include resource="config/logback-appender.xml"></include>

    <!-- 定义logger -->

    <include resource="config/logback-logger.xml"></include>

    3.8  shutdownHook

    表格2- 7 shutdownhook标签

    描述

    当所依赖的项目关闭之后,停止日志框架,并关闭它所有相关的资源。

    Shutdownhook用于将日志框架的停用与项目的停用关联起来。

    描述

    当项目为独立的java项目时,此时需要它需要关联JVM的停用过程,需要手动配置。

    当项目为Java-Web项目时,此时需要关联ServletContext对象,当该对象销毁时,日志框架停用,它是自动的,不需要手动配置。

    示例

    <shutdownhook/>

    3.9   statusListener

    表格2- 8 statusListener标签

    描述

    日志框架中的监听器,在core.status包下面。常见的有

    OnConsoleStatusListener,打印日志框架的执行信息,与开启调试模式相同。

    频率

    较低

    属性

    属性:class

          说明:监听器的名称。

          值:类的全名,。

          是否必填:否

    3.10  timestamp

    定义时间变量,此处省略,在第四章节中介绍

    3.11  contextListener

             略。

    3.12  分支

    因为使用频率非常低,此处省略。

    本应该提供一份完整的配置文件,此处暂时省略,在学习完所有的章节之后提供。至此本篇内容结束,原著的链接为:http://logback.qos.ch/manual/configuration.html

  • 相关阅读:
    MySQL数据库触发器
    软碟通制作fedora17 U盘启动的方法
    编译自己功能定制的Fedora7内核
    SUSE Linux 10配置裸设备(raw devices)
    linux之cut用法
    python---opencv常用函数
    vscode安装以及如何连接服务器
    pip 安装包问题汇总
    conda创建环境失败的解决方法
    git操作
  • 原文地址:https://www.cnblogs.com/rain144576/p/12304514.html
Copyright © 2011-2022 走看看