简单介绍:
在我们的程序开发中,日志的存在是必不可少的,日志可以帮助我们观察程序的运行过程,报错信息,各种警告,在我们调试程序的时候起到了非常大的作用。那么在SpringBoot中,我们在每次启动的时候在控制台输出的内容就是我们的日志,之前我们也看过一些里面的内容,包括启动信息,第三方技术的引用信息,配置文件的使用,都可以在日志中看到我们想要的内容。
在日志中,我们主要学习如果写日志,编辑日志格式,以及介绍一下我们SpringBoot的日志格式。
记录日志:
记录日志的过程我们可以通过一个对象来完成,这个对象是Logger类,这个类在三个包里都有重复的选项,在我们导入类的时候,要导入slf4j包下的Logger类:
创建日志对象我们不需要通过new的方式,而是通过LoggerFactory的方式从日志工厂中获取,在获取的时候调用getLogger()方法,这个方法的参数就是当前类的对象,然后我们就可以使用这个对象调用记录日志的方法,方法的调用非常简单,四种方法对应四种常用的日志等级:
info:表示消息日志,最常见的日志。
warn:表示警告日志。
error:表示错误日志。
debug:表示调试日志,调试的日志在正常的启动中是不会显示的,让我们以调试进行启动的时候才会出现调试日志。
在SpringBoot中,默认我们不做修改的情况下他会把日志打印在控制台上,我们现在启动项目,并访问我们自己写的记录日志的controller,那么就会在控制台上看到我们的日志信息:
可以看到,我们自己编写的日志信息已经输出出来了,因为我们当前不是调试的环境,所以我们只输出了三种日志格式,那么三种日志的等级在日志的前面,第二个信息就是日志的等级。
2、日志的等级:
既然日志有四个等级的区分,那么我们能不能手动修改日志的打印级别呢?肯定是可以的,我们可以在配置文件中配置日志的打印级别,从低到高分别是:info、warn、error、debug,高等级的日志可以在低等级中显示,但是在高等级下不会出现低等级的日志。也就是说如果我把日志的输出等级调整为warn模式,则之后error会出现,info因为等级低则不会出现。
通过调整logging.level.root的值我们就可以调整日志的输出等级,此时我们的等级是info,其实默认也是info,我们现在调整一下:
我们把等级调高,然后重启程序,这次我们注意观察控制台的打印结果:
只有error和warn等级的日志可以打印,之前的那些消息日志都不见了,这就是在高等级下,低等级的日志不会出现。如果我们把等级调整成debug,效果就会是这样:
注意我在图片的右下角标了一个小红框,这个框里面就是我们的进度条,如果你尝试过你就会知道这个模式会把我们的程序在启动的时候干的事情全部都列出来,非常非常的多,所以我们平时不会以这个默认打印日志,不然我们要看的东西全部都会找不到了。
3、日志的分组
在有些时候,我们会希望在运行某一些类或者某一些包下面的类的时候打印出不一样等级的日志,这个操作要如何实现呢?
我又创建了一个包和一个类,这个包叫做service,类叫做UserService,在这个类中的日志在输出的时候都会带一个service的前缀。现在我要程序在运行的时候,输出controller包的日志以info的等级显示,输出service包下的日志以warn的等级显示:
基本过程就是首先可以对多个包进行分组,然后对分组的组名进行日志等级的控制:
4、SpringBoot的日志:
在SpringBoot的默认打印日志格式中,是由以下几部分组成的:
时间 等级 PID 所属线程 所属类/接口 日志信息
我么可以对日志的打印格式进行修改,感兴趣的可以自己去尝试一下,使用SpringBoot的配置文件中的属性值就可以进行修改。
5、快速获取日志对象:
lombok提供了一个快速获取日志的对象的注解:@slf4g,在类上使用这个注解之后,他会在类中加载一个对象,而这个对象就可以和之前我们自己声明的对象一样帮助我们记录日志,这个记录日志的对象叫做log:
此时我们将我们之前手动创建log对象的方式注释掉,然后添加@Slf4g的注解,可以看到我们之前的对象和方法都可以正常的使用,并且功能也是正常的:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153252.html