Spring Boot日志

一,日志是什么

日志我们在一开始的学习中就有了解,一开始我们就已经使用过了System.out.print来打印日志了。但在项目中这种肯定满足不了。就需要一些专门的日志框架来达到我们的要求。

1.1日志的用途

1.系统监控

我们在这里可以设置不同的值,在达到一定程度的超过阈值之后,进行报警,这也是很常见的需求。

2.数据采集

数据统计,比如网页的访问人数之类的,对公司做数据有很大的帮助。

推荐排序:也就是大数据的整合,通过算法来给用户做出推荐。

二,日志使用

在spring boot启动的时候也有日志,意思也就是图中这些:

这些就是日志的一些基础信息,来做分别。

1.时间⽇期:精确到毫秒

2. ⽇志级别:ERROR,WARN,INFO,DEBUG或TRACE

3. 进程ID

4. 线程名

5. Logger名(通常使⽤源代码的类名)

6. ⽇志内容

三,SLF4J框架介绍 

SLF4J也就是其他日志框架的门面,为日志服务提供了统一的接口。如果不引入门面,这样就需要一环套一环很麻烦,需要依赖很多,维护起来还特别麻烦,一个错了要一个一个去慢慢维护。

引入之后,有统一的接口,只需要维护一套日志文件配置就OK了,引入之后的样子:

总的来说,SLF4J使你的代码独⽴于任意⼀个特定的⽇志API,这是⼀个对于开发API的开发者很好的思想。

四,日志级别

FATAL:致命信息,表⽰需要⽴即被处理的系统级错误.

 ERROR:错误信息,级别较⾼的错误⽇志信息,但仍然不影响系统的继续运⾏

WARN:警告信息,不影响使⽤,但需要注意的问题

INFO:普通信息,⽤于记录应⽤程序正常运⾏时的⼀些信息,例如系统启动完成,请求处理完成等。

DEBUG:调试信息,需要调试时候的关键信息打印。

TRACE:追踪信息,⽐DEBUG更细粒度的信息事件(除⾮有特殊⽤意,否则请使⽤DEBUG级别替代)

日志级别的顺序:

级别越高,收到的消息越少,fatal基本不会有信息,因为有就基本不会通过启动程序。最后面那个也基本不会,因为不会影响程序。

3.1日志级别的使用

如果你还是必须打印那些日志,这边就可以使用代码来实现:

public String printLog() {
 logger.trace("================= trace ===============");
 logger.debug("================= debug ===============");
 logger.info("================= info ===============");
 logger.warn("================= warn ===============");
 logger.error("================= error ===============");
 return "打印不同级别的⽇志" ;
}

 但这样打印出来,就只有info,warn,error级别的日志,因为日志默认输出是info,只会打印大于等于它的,所以打印了这三个。

3.2日志文件分割

需要在spring boot配置文件里面来写

porperties配置:

logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}.%i
logging.logback.rollingpolicy.max-file-size=1KB

yml配置:

logging:
 logback:
     rollingpolicy:
         max-file-size: 1KB
         file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i

这种就是配置当日志大于1kb的时候就分割,很小,在实际应用中我们需要调大一点点。

3.3日志格式

idea专业版不用配置,如何下载在前面几篇博客提到过

社区版配置:

1. %clr(表达式){颜⾊}

设置输⼊⽇志的颜⾊⽀持颜⾊有以下⼏种:

• blue

 • cyan

• faint

• green

• magenta

• red

• yellow

 2. %d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}}

⽇期和时间--精确到毫秒 

3. %5p 显示日志级别ERROR,MARN,INFO,DEBUG,TRACE.

4. %t 线程名.%c 类的全限定名.%M method.%L 为⾏号.%thread 线程名称.%m 或者%msg 显⽰输出消息.%n 换⾏符

5. %5 若字符⻓度⼩于5,则右边⽤空格填充.%-5 若字符⻓度⼩于5,则左边⽤空格填充.

%.15 若 字符⻓度超过15,截去多余字符.%15.15 若字符⻓度⼩于15,则右边⽤空格填充.若字符⻓度超 过15,截去多余字符

四,简单的日志使用

每次都使用那个LoggerFactory.getLogger(xxx.class)很繁琐。使用lombok提供了方便的方法:

1. 添加lombok框架⽀持

2. 使⽤@slf4j 注解输出⽇志。

添加lombok依赖:

<dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <optional>true</optional>
</dependency>

输出日志

@Slf4j
@RestController
public class LogController {
     public void log(){
     log.info("--------------要输出⽇志的内容----------------");
 }
}

这样就可以简单输出日志了。lombok提供的@Slf4j注解和log对象快速的打印⾃定义⽇志。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值