在springboot项目中,logback的配置和使用

一.Springboot的默认日志使用:
1,Springboot默认已经开启日志;默认的日志格式为:时间 日志级别 PID 线程名称 日志类 日志说明
2,Springboot的日志区别系统日志和应用日志;
3,Springboot推荐使用Logback作为日志框架

二:Logback使用方法(推荐使用logback自己的配置文件)
1,springboot默认支持logback.xml或者logback-spring.xml,推荐使用logback-spring.xml,springboot会增加额外功能;
2,可以通过logging.config=classpath:mylogback.xml指定自己的logback配置文件(不推荐);
3,一个典型的logback配置文件:
在springboot项目中,logback的配置和使用
三.Logback使用介绍:
Logback使用介绍:
1,:Logback配置根元素
属性包括:
1,scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
2,scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
3,debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
子元素:
:上下文名字;
:定义属性,可以使用${}在配置文件中使用;

2,:在logback中是用于具体记录日志的组件,可以用来配置日志记录方式,日志记录格式等;
属性包括:
name:appender的名字,用于下面在配置日志的时候指定;
class:使用到的appender类;

常见的appender:
1,ch.qos.logback.core.ConsoleAppender:输出到控制台;
2,ch.qos.logback.core.FileAppender:输出到文件;
3,ch.qos.logback.core.rolling.RollingFileAppender:输出到文件,可以配置滚动策略,当日志达到某个条件之后分文件记录;
4,还有其他的appender,比如写到数据库等;

元素的基本格式:





元素用来规定日志的输出格式,所有表达式都以%开始表示接下来是一个特殊标识符
常见标识符:
1,%logger{n}:输出Logger对象类名,n代表长度;
2,%class{n}:输出所在类名,
3,d{pattern}或者date{pattern}:输出日志日期,格式同java;
4,L/line:日志所在行号;
5,m/msg:日志内容;
6,method:所在方法名称;
7,p/level:日志级别;
8,thread:所在线程名称;
【直接写数字】:标识最小宽度并且是右对齐
【-数字】:标识最小宽度,并且是左对齐
【.数字】:标识最大宽度。如果数据内容超过最大宽度,从前面截取数据
【.-数字】:标识最大宽度。如果数据内容超过最大宽度,从后面截取数据
在springboot项目中,logback的配置和使用
常见的appender使用:
1)ConsoleAppender输出到控制台,子元素:

:日志格式化
:System.out(默认)或者System.err
在springboot项目中,logback的配置和使用

2)FileAppender输出到文件,子元素:
file:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
append:文件结尾,如果是 false,清空现存文件,默认是true。
encoder:对日志进行格式化
在springboot项目中,logback的配置和使用
3)RollingFileAppender输出到文件,可以设置文件滚动(分割)条件,子元素:
append:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
rollingPolicy:滚动策略,涉及文件移动和重命名。
常用滚动策略:
ch.qos.logback.core.rolling.TimeBasedRollingPolicy:按照时间控制来控制记录文件;
fileNamePattern:文件名称格式,以%d{pattern};
maxHistory:
可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。(以文件最小时间为准)

在springboot项目中,logback的配置和使用
SizeAndTimeBasedRollingPolicy:按照时间和大小控制记录文件;
fileNamePattern:文件名称格式,可以使用%i来控制索引编号;
maxFileSize:这是活动文件的大小,默认值是10MB
maxHistory:
可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。(以文件最小时间为准)
在springboot项目中,logback的配置和使用
3,元素:用来设置某一个包或具体的某一个类的日志打印级别及对应的appender;
属性:
name: 用来指定受此loger约束的某一个包或者具体的某一个类;
子节点:
appender-ref:可以配置多个,标识这个appender将会添加到这个logger;

4,元素:特殊的logger,代表根配置,如果没有单独指定日志包层级,都默认使用root定义的日志输出级别;
属性:level:指定日志级别;

1,springProfile:可以放在任何一个地方,开启profile功能;

2,springProperty:支持从环境中读取内容;

<appender …>

${propkey}