LogBack简介
Logback旨在作为流行的log4j项目的继任者,比其他现有日志系统更快更小,且提供了独特的有用的特性。包括logback-core,logback-classic和logback-access三个模块。logback-core模块为其他两个模块奠定了基础。logback-classic模块可以被同化为log4j的显着改进版本,且本身实现了SLF4J API
LogBack日志级别
FATAL > ERROR > WARN > INFO > DEBUG > TRACE
默认情况下,SpringBoot用LogBack来记录日志,并用INFO级别输出到控制台
配置LogBack的步骤
在src/main/resources目录下创建logback-spring.xml配置文件,内容如下:
< ? xml version= "1.0" encoding= "UTF-8" ? >
< configuration debug= "false" >
< ! -- 定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-- >
< property name= "LOG_HOME" value= "\logback" / >
< ! -- % m输出的信息, % p日志级别, % t线程名, % d日期, % c类的全名, % i索引【从数字0 开始递增】, , , -- >
< ! -- appender是configuration的子节点,是负责写日志的组件。 -- >
< ! -- ConsoleAppender:把日志输出到控制台 -- >
< appender name= "STDOUT" class = "ch.qos.logback.core.ConsoleAppender" >
< encoder class = "ch.qos.logback.classic.encoder.PatternLayoutEncoder" >
< ! -- 格式化输出:% d表示日期,% thread表示线程名,% - 5 level:级别从左显示5 个字符宽度% msg:日志消息,% n是换行符-- >
< pattern> % date{ yyyy- MM- dd HH: mm: ss} | % highlight ( % - 5 level) | % boldYellow ( % thread) | % cyan ( % logger) | % msg% n< / pattern>
< charset> UTF- 8 < / charset>
< / encoder>
< / appender>
< ! -- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -- >
< ! -- 以下的大概意思是:1. 先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX% 日期% 索引,新的日志仍然是logback. log -- >
< ! -- 2. 如果日期没有发生变化,但是当前日志的文件大小超过1 KB时,对当前日志进行分割 重命名-- >
< appender name= "FILE" class = "ch.qos.logback.core.rolling.RollingFileAppender" >
< ! -- rollingPolicy: 当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -- >
< ! -- TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 -- >
< rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
< ! -- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -- >
< ! -- 文件名:log/ logback. 2020 - 03 - 10.0 . log -- >
< fileNamePattern> ${ LOG_HOME} / logback. %d. %i. log< / fileNamePattern>
< ! -- 每产生一个日志文件,该日志文件的保存期限为30 天 -- >
< maxHistory> 30 < / maxHistory>
< timeBasedFileNamingAndTriggeringPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
< ! -- maxFileSize: 这是活动文件的大小,默认值是10 MB -- >
< maxFileSize> 20 MB< / maxFileSize>
< / timeBasedFileNamingAndTriggeringPolicy>
< / rollingPolicy>
< encoder>
< ! -- pattern节点,用来设置日志的输入格式 -- >
< pattern> % date{ yyyy- MM- dd HH: mm: ss} | % highlight ( % - 5 level) | % boldYellow ( % thread) | % cyan ( % logger) | % msg% n< / pattern>
< ! -- 记录日志的编码 -- >
< charset> UTF- 8 < / charset> < ! -- 此处设置字符集 -- >
< / encoder>
< / appender>
< ! -- show parameters for hibernate sql 专为 Hibernate 定制 -- >
< ! -- < logger name= "org.hibernate.type.descriptor.sql.BasicBinder" level= "TRACE" / >
< logger name= "org.hibernate.type.descriptor.sql.BasicExtractor" level= "DEBUG" / >
< logger name= "org.hibernate.SQL" level= "DEBUG" / >
< logger name= "org.hibernate.engine.QueryParameters" level= "DEBUG" / >
< logger name= "org.hibernate.engine.query.HQLQueryPlan" level= "DEBUG" / > -- >
< ! -- myibatis log configure-- >
< logger name= "com.ysd.repository" level= "debug" / >
< logger name= "jdbc.sqltiming" level= "debug" / >
< logger name= "com.ibatis" level= "debug" / >
< logger name= "com.ibatis.common.jdbc.SimpleDataSource" level= "debug" / >
< logger name= "com.ibatis.common.jdbc.ScriptRunner" level= "debug" / >
< logger name= "com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level= "debug" / >
< logger name= "java.sql.Connection" level= "debug" / >
< logger name= "java.sql.Statement" level= "debug" / >
< logger name= "java.sql.PreparedStatement" level= "debug" / >
< logger name= "java.sql.ResultSet" level= "debug" / >
< ! -- 全局日志输出级别 -- >
< root level= "INFO" >
< appender- ref ref= "STDOUT" / >
< appender- ref ref= "FILE" / >
< / root>
< ! -- 精确指定项目中某个包,当有日志操作行为时的日志记录级别 -- >
< ! -- com. mistra. axela. logback,也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG -- >
< ! -- < logger name= "com.mistra.axela.logback" level= "DEBUG" >
< appender- ref ref= "STDOUT" / >
< / logger> -- >
< / configuration>
在application.properties文件中添加配置
########################################################
### 引入日志配置文件
########################################################
logging. config= classpath: logback- spring. xml