【Spring框架全系列】SpringBoot配置日志文件

这篇具有很好参考价值的文章主要介绍了【Spring框架全系列】SpringBoot配置日志文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🍧🍧哈喽,大家好,我是小浪。那么上篇博客我们学习了SpringBoot配置文件的相关操作,本篇博客我们将学习一个新的知识点,SpringBoot日志文件。🖥🖥

📲目录

一、日志是什么,有什么作用?

二、如何看到日志文件?

三、如何自定义日志打印

1、在程序中得到⽇志对象

2、使用日志对象提供的内置方法来打印日志

四、日志级别

1、日志级别有什么作用?

2、日志的级别分类;

3、日志级别的设置

4、日志持久化

五、更简单的日志输出

六、在原有项目添加lombok


一、日志是什么,有什么作用?

🌃日志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看日志,那么你能找到出错的原因吗? 答案是不可以的,写代码是很严肃的一件事情,不能靠猜来解决问题,因此日志对于我们来说,最主要的用途就是排除和定位问题。

二、如何看到日志文件?

🌇我们的springboot项目启动的时候在控制台就有日志输出:【Spring框架全系列】SpringBoot配置日志文件

🎇通过运行结果我们可以观察到:

🎑1、Spring Boot 内置了⽇志框架;
📸2、默认情况下,输出的⽇志并非是开发者定义和打印的,那开发者怎么在程序中自定义打印⽇志呢?
📞3、日志默认是打印在控制台上的,而控制台的⽇志是不能被保存的,那么怎么把日志永久的保存下来 呢?

三、如何自定义日志打印

1、在程序中得到⽇志对象

在程序中获取日志对象需要使⽤⽇志工厂 LoggerFactory,语法如下:

private static final Logger logger = LoggerFactory.getLogger(UserController.class);

注意这里Logger选择这个slf4j包下的,不要导错包;

【Spring框架全系列】SpringBoot配置日志文件

即⽇志⼯⼚需要将每个类的类型传递进去,这样我们才知道⽇志的归属类,才能更⽅便、更直观的定位问题类;

2、使用日志对象提供的内置方法来打印日志

在demo包下新建一个包controller,然后新建一个类UserController,代码如下:
package com.example.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@RequestMapping("/user")
@Controller
@ResponseBody //用来设置当前类中所有的方法返回的是数据而非页面
public class UserController {
    //1、得到日志对象
    private static final Logger logger = LoggerFactory.getLogger(UserController.class);

    @RequestMapping("/hello")
    public String Hi(){
        // 写日志
        logger.trace("我是 trace");
        logger.debug("我是 debug");
        logger.info("我是 info");
        logger.warn("我是 warn");
        logger.error("我是 error");
        return "hello SpringBoot";
    }
}

2、在resources包下新建一个yml文件,写上端口号,自己取就可以;

【Spring框架全系列】SpringBoot配置日志文件

 3、运行启动类DemoApplication;

【Spring框架全系列】SpringBoot配置日志文件

4、在浏览器输入对应的url地址来访问;http://localhost:1234/user/hello ,按下回车:

【Spring框架全系列】SpringBoot配置日志文件

OK,这个时候再回到我们的idea控制台观察运行结果:

【Spring框架全系列】SpringBoot配置日志文件

那么问题来了,我们写的代码是要打印五个,我们发现结果只打印了三个,那么trace和debug去哪里了呢?那就要来到我们下一个目录的内容了,日志的级别;

四、日志级别

1、日志级别有什么作用?

1、日志级别可以帮你筛选出重要的信息,比如设置日志级别为 error,那么就可以只看程序的报错日志了,对于普通的调试日志和业务日志就可以忽略了,从而节省开发者信息筛选的时间。

2、日志级别可以控制不同环境下,一个程序是否需要打印日志,如开发环境我们需要很详细的信息而生产环境为了保证性能和安全性就会输入尽量少的日志,而通过日志的级别就可以实现此需求;

2、日志的级别分类;

trace:微量,少许的意思,级别最低;
debug:需要调试时候的关键信息打印;
info:普通的打印信息(默认⽇志级别);
warn:警告,不影响使⽤,但需要注意的问题;
error:错误信息,级别较⾼的错误⽇志信息;
fatal:致命的,因为代码异常导致程序退出执⾏的事件。

对应日志级别的顺序:

【Spring框架全系列】SpringBoot配置日志文件

 即越往上接收到的消息就越少,如设置了 warn 就只能收到 warn、error、fatal 级别的⽇志;

3、日志级别的设置

1、日志级别我们需要在配置文件application.yml中设置即可,这里我们在生产环境下的配置文件中设置日志的级别为debug:

logging:
  level:
    root: debug

2、运行启动类,这时候控制台会打印很多日志;

【Spring框架全系列】SpringBoot配置日志文件

 3、在浏览器访问一下,点击这个刷新按钮即可;

【Spring框架全系列】SpringBoot配置日志文件

 4、再次回到我们的idea,观察运行结果;

【Spring框架全系列】SpringBoot配置日志文件

那么,不仅可以对全局的类进行设置,还可以针对指定的包下的类进行设置日志的级别:

【Spring框架全系列】SpringBoot配置日志文件

4、日志持久化

那么以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追 溯问题,把⽇志保存下来的过程就叫做持久化。
想要将⽇志进⾏持久化,只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后,Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。
1、配置日志文件的保存路径,在自己电脑选择一个目录用来存放打印的日志信息;
【Spring框架全系列】SpringBoot配置日志文件
2、运行启动类,然后去浏览器访问一下;
【Spring框架全系列】SpringBoot配置日志文件

3、查看刚设置的日志文件目录下是否生成了日志文件;

【Spring框架全系列】SpringBoot配置日志文件

4、OK,我们打开来看一下,写入了哪些日志内容;

【Spring框架全系列】SpringBoot配置日志文件

要注意,这里我们如果在sayHi方法里面给出System.out.println来打印一行内容,那么是不会写入到日志文件当中的,也就是说System.out.println打印的日志是不能够持久化的。

5、我们还可以配置日志文件的文件名;

name: D:\Spirng框架\Spirng_GO\Spring_Learn\springboot项目\logs\springboot-1.logs

运行结果:

【Spring框架全系列】SpringBoot配置日志文件

五、更简单的日志输出

那么上面的演示,每次都使⽤ LoggerFactory.getLogger(xxx.class) 很繁琐,且每个类都添加⼀遍,也很麻烦,有没有更好的方式来输出日志呢?
答案:使⽤ lombok 来更简单的输出。
1、添加lombok框架支持;
2、使用注解@Slf4j;

在线演示:首先我们在controller包下新建一个AriticleController类:

package com.example.demo.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
@RequestMapping("/art")
@Slf4j
public class ArticleController {

//    // 1.得到日志对象
//    private static final Logger logger = LoggerFactory.getLogger(ArticleController.class);

    @RequestMapping("/hi")
    public String sayHi() {
        log.trace("我是 slf4j 的 trace");
        log.debug("我是 slf4j 的 debug");
        log.info("我是 slf4j 的 info");
        log.error("我是 slf4j 的 error");
        return "Hi,Article Info.";
    }

}

注意注解@Slf4j已经添加,添加之后,我们便直接可以使用log对象,并且只能使⽤ log 对象才能输出,这是 lombok 提供的对象名;

跟之前一直,运行启动类,然后去浏览器访问我们的url地址;

【Spring框架全系列】SpringBoot配置日志文件

idea控制台打印的信息:

【Spring框架全系列】SpringBoot配置日志文件

对应的相应目录,观察记录下来的日志:

【Spring框架全系列】SpringBoot配置日志文件

六、在原有项目添加lombok

那么有的小伙伴创建springboot项目的时候可能没有添加lombok依赖,但是现在想在当前项目添加lombok依赖,以便于实现更简单的日志打印,如何操作呢?

1、首先我们需要装一个插件EditStarters;

【Spring框架全系列】SpringBoot配置日志文件

2、安装完成之后,在我们的配置文件application.yml中鼠标右键,找到Generate;

【Spring框架全系列】SpringBoot配置日志文件

3、点击EditStarters;

【Spring框架全系列】SpringBoot配置日志文件

4、找到lombok选中,点击OK;

【Spring框架全系列】SpringBoot配置日志文件

🌁OK,那么springboot日志文件的相关内容就到这里啦,创作不易,还请三连一波,感谢支持,我们下期再见啦!!💡💡文章来源地址https://www.toymoban.com/news/detail-439244.html

到了这里,关于【Spring框架全系列】SpringBoot配置日志文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring框架全系列】方法注解@Bean的使用

    📬📬哈喽,大家好,我是小浪。上篇博客我们介绍了五大类注解的使用方法,以及如何解决Spring使用五大类注解生成bean-Name的问题;那么,谈到如何更简单的读取和存储对象,这里我们还需要介绍另外一个\\\"方法注解@Bean\\\"的使用,快来一起学习叭!🛳🛳 📲目录 一、如何使

    2024年02月04日
    浏览(36)
  • 【Spring框架全系列】Spring更简单的读取和存储对象

    📬📬哈喽,大家好,我是小浪。上篇博客我们介绍了如何创建一个spring项目,并且如何的存、取对象,介绍了相关方法,那么本篇博客将接着上篇博客的内容介绍如何更加简单的读取和存储对象。 🌃在 Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,也就是我们接

    2024年02月05日
    浏览(33)
  • FreeRTOS 全系列笔记——基于V10.4

    基于crotex-m处理器新建FreeRTOS工程 为什么使用嵌入式实时操作系统(RTOS) FreeRTOS——创建任务 FreeRTOS的任务调度和管理 FreeRTOS-内核链表数据结构 FreeRTOS-内核对时间的测量 FreeRTOS-内核中的钩子(Hook)函数 FreeRTOS-软件定时器的使用 FreeRTOS-软件定时器的实现原理 FreeRTOS-延后执行机制

    2024年02月04日
    浏览(32)
  • Radware负载均衡-全系列产品证书更新(二)

    简单介绍一下关于Radware APSolute Vision平台的证书更新。 更新证书有两种方式,一种为自签发,另外一种为导入第三方证书,且更新证书仅能通过命令行的形式更新证书。两种方式都会导致APSolute Vision平台设备的重启(老版本,最新版本只会导致当前访问vision会话中断),请注

    2024年01月16日
    浏览(43)
  • 小米红米全系列官方原厂预装系统

    小米红米全系列官方原厂预装系统恢复镜像 1.全系列为原厂预装恢复镜像系统,专机专用 2.自带原机所有驱动,主题,Logo,Office等,再次恢复原厂 链接: https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd=8888 3.支持型号如下: Xiaomi Book 12.4 二合一 Xiaomi Book Air 13 Redmi G (Pro) 游戏本 2022 锐

    2024年02月11日
    浏览(41)
  • 云安全系列4:解析云安全工具集

    随着组织越来越多地将数据和应用转移到云端,云安全在确保工作负载安全方面变得至关重要。Gartener 就表示:“云优先战略现在已十分普遍,甚至在不愿承担风险的企业机构中也是如此。但由于缺乏确保安全云计算部署所必需的技能和工具,因此执行仍然受到阻碍。” 在了

    2024年02月02日
    浏览(38)
  • 【云安全系列】Seccomp—云安全syscall防护利器

    Seccomp(全称 “Secure computing”),早在 2.6.12 版本(2005年3月8日)就引入到内核中,是通过只允许内核支持部分 syscall(系统调用),或者拒绝内核认为可能有危险的 syscall 集合的方式,来限制一个进程所支持的 syscall调用。最初,Seccomp 只允许使用read、 write、 _exit、sigreturn

    2024年02月08日
    浏览(35)
  • Oracle全系列版本官网下载保姆及教程

    下面以下载Oracle12cR2为例说明下载的整个过程。 基本步骤如下: 先注册一个Oracle账号并登录; 进入到客户下载页面搜索要下载的数据库版本; 得到Oracle下载器(Oracle_SSN_DML_xxxxx.exe),注意:每下载一次都会得到一个Oracle的下载器; 运行下载器进行下载 官网地址:https://www.or

    2024年01月17日
    浏览(45)
  • 苹果发布会:iPhone 15全系列手机正式发布

    在人们的高度关注和热切期待中,苹果公司在北京时间9月13日凌晨1点,准时举办了秋季新品发布会,并如期发布了iPhone 15系列。此次发布会以“好奇心上头”为主题,吸引了全球消费者和科技爱好者的目光。 在发布会上,苹果公司向全球观众展示了iPhone 15系列的手机,iPho

    2024年02月09日
    浏览(56)
  • 【Intel/Altera】 全系列FPGA最新汇总说明,持续更新中

            2023年11月14日英特尔 FPGA中国技术日, Intel刚发布了新的FPGA系列 ,官网信息太多,我这里结合以前的信息, 简单汇总更新一下,方便大家快速了解Intel/Altera FPGA家族。   目录 前言 Altera和Intel 型号汇总 1. Agilex 系列 1.1英特尔® Agilex™ 7 FPGA 和 SoC FPGA 1.2英特尔® Ag

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包