SpringBoot日志相关
SpringBoot使用的是SLF4j当门面,Logback当实现完成
日志级别
数字越大,级别越高,框架只会输出大于等于当前日志级别的信息
- ERROR 40
- WARN 30
- INFO 20
- DEBUG 10
- TRACE 0
几种常用的使用方法
第一种 :
private Logger logger = LoggerFactory.getLogger(WeixindiancanApplicationTests.class);
logger.info();
...
默认的级别上info,按上面的排名只会输出 info,warn,error级别以上的日志
在获取logger对象时,一般都是将本类的class传递进去,在默认的格式在日志输出时会把每条日志信息所在的class名输出出来
第二种: SpringBoot整合 Lombok
Lombok不仅仅提供了强大的@Data,和getset注解,同时支持日志相关
@Slf4j
添加在类上,我们就不用再手动的获取Logger对象了,而是直接使用log
log.debug("dubug...");
log.info("info...");
log.error("error...");
格式:
在输出日志的时候可以向下面这样,两种写法
log.info("name="+name+" age="+age);
log.info("name= {},age: {}",name,age);
application.yml的配置
如图是日志相关的配置
-
path: E:
将日志输出到文件 , 默认会在这个路径下创建spring.log
-
file: E:\mylog.log
将日志输出到指定目录的指定文件, 可以取代上面的path
- level:
- 可以设置上面的五种日志级别
- 可以指定某个类的日志级别
-
console: 格式,网上很多不同的输出格式
logging:
pattern:
level:
com.changwu.wen.WeicanApplication: debug
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>