logback,一个“可靠、通用、快速而又灵活的Java日志框架”,是springboot默认的日志框架。
1. pom依赖和logback.xml
- pom依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!--
引入以上依赖,会自动引入以下jar
logback-classic.x.x.x.jar
logback-core.x.x.x.jar
slf4j-api-x.x.x.jar
-->
注意spring-boot-starter-parent里已集成logback,可直接使用。
- logback.xml
在工程resources目录下建立logback.xml
1.logback首先会试着查找logback.groovy文件;
2.当没有找到时,继续试着查找logback-test.xml文件;
3.当没有找到时,继续试着查找logback.xml文件;
4.如果仍然没有找到,则使用默认配置(打印到控制台)。
2. configuration属性介绍
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false" packagingData="true">
<!-- 用来设置上下文名称,每个logger都关联到logger上下文,默认上下文名称为default。但可以使用<contextName>设置成其他名字,
用于区分不同应用程序的记录。一旦设置,不能修改。-->
<contextName>myApplicationName</contextName>
<!--用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使用“${}”来使用变量。
name: 变量的名称,value: 的值时变量定义的值-->
<property name="LOG_HOME" value="${catalina.base}/logs/cloudTest/" />
<!--获取时间戳字符串,他有两个属性key和datePattern key: 标识此<timestamp> 的名字;datePattern: 设置将当前时间(解析配置
文件的时间)转换为字符串的模式,遵循 java.txt.SimpleDateFormat的格式。这个属性很少使用 -->
<timestamp key="keyValue" datePattern="yyyy-MM-dd" />
<contextName>${keyValue}</contextName>
<!--其他配置略-->
</configuration>
-
configuration
scan 属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
packagingData:Logback可以包括它输出的堆栈跟踪行的每一行的打包数据。打包数据由JAR文件的名称和版本组成,堆栈跟踪行的类就是在JAR文件中创建的。默认为false -
contextName
-
property
可以定义一些变量,常用于定义日志文件输出位置。 -
timestamp
3. logger和root属性的使用
logger 是configuration的子节点,用来设置某一个包或者具体的某一个类的日志打印级别、以及指定appender。logger仅有一个name属性