SpringBoot使用的是SLF4j当门面,Logback当实现完成
日志级别
数字越大,级别越高,框架只会输出大于等于当前日志级别的信息
- ERROR 40
- WARN 30
- INFO 20
- DEBUG 10
- TRACE 0
几种常用的使用方法
第一种 :
默认的级别上info,按上面的排名只会输出 info,warn,error级别以上的日志
在获取logger对象时,一般都是将本类的class传递进去,在默认的格式在日志输出时会把每条日志信息所在的class名输出出来
第二种: SpringBoot整合 Lombok
Lombok不仅仅提供了强大的@Data,和getset注解,同时支持日志相关
@Slf4j
添加在类上,我们就不用再手动的获取Logger对象了,而是直接使用log
格式:
在输出日志的时候可以向下面这样,两种写法
logback-sring.xml的配置
通过这个配置文件,可以更方便的控制日志的输出,比如将 级别为info的输出到A文件, 级别为error的输出到B文件
默认放置在Resources目录下
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 配置项 配置控制台的输出--> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <!--展示格式--> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern> %d - %msg%n </pattern> </layout> </appender> <!-- 配置项 配置文件的输出 --> <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 只保留 INFO --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <!-- 当匹配到error时, 禁止输出 --> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <!--展示格式--> <pattern> %msg%n </pattern> </encoder> <!--滚动策略 按照时间,每天产生一个--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E:info.%d.log</fileNamePattern> </rollingPolicy> </appender> <!-- 创建第三个配置项,将error和info分别输出到不同的文件中 --> <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 只保留ERROR --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <!--展示格式--> <pattern> %msg%n </pattern> </encoder> <!--滚动策略 按照时间,每天产生一个--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E:error.%d.log</fileNamePattern> </rollingPolicy> </appender> <!-- 将上面的配置项,使用到root目录上 --> <root level="info"> <appender-ref ref="consoleLog"/> <appender-ref ref="fileInfoLog"/> <appender-ref ref="fileErrorLog"/> </root> </configuration>
此文来源于: https://www.cnblogs.com/ZhuChangwu/p/11266679.html#2541471269