持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情
前言
在这个海量数据的时代,我们都被埋没在数字海洋,在如今数字化时代,数据在源源不断的产出。但是这些数据都是转瞬即逝的吗?用完后就被丢弃的吗?在企业中大量的数据如何记录,如何利用大量数据。这次我将带大家了解一下日志,这个在日常开发中不起眼的东西,有一个良好的日志记录习惯也是对对自己的开发大有益处,调试起来才能得心应手。
sout的弊端
早起我们打印数据与调试bug经常会用到下面的这个语句
System.out.println("========> 我是日志输出");
采用console打印已经是大家常见的调试手段了,但是大家有没有想过,你在企业中使用println你有看过他的底层代码吗?甚至有些企业,不,是大部分企业都会禁止开发使用sout,其原因就是下面代码
private void newLine() {
try {
synchronized (this) {
ensureOpen();
textOut.newLine();
textOut.flushBuffer();
charOut.flushBuffer();
if (autoFlush)
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
可以发现他竟然有一个synchronized锁,所以所有线程走到这里都会停顿,这会极大降低计算机处理速度。
为此我们转而使用各种log框架,来实现日志打印帮助上线生产时进行调试。
常见的日志框架
Log4j、Log4j2、Logback 这三种,SpringBoot默认的日志框架 Logback,spring采取logback不采取其他的框架也是因为他有一个sl4j,sl4j其实不算是日志框架,他是一个日志整合器,因为市面上日志框架太多,sl4j其实是用来规范其他框架的一款接口,其内部实现还是要依赖于其他的日志根基,springboot的日志也可以更换,因为他就采用了sl4j。