[JAVAee]SpringBoot日志文件

2023-09-21 13:53:39

日志的作用

  • 日志可以帮助我们发现程序的问题并进行定位.
  • 日志还可以记录用户的登录信息,分析用户的意图.
  • 日志能记录程序执行的时间,记录数据.为日后的程序优化提供数据支持.

SpringBoot中的日志

在SpringBoot中,内置的日志的框架(SLF4J + logback).

框架说明

slf4j是日志的门面,而logback是日志的实现.由程序员来调用slf4j来去控制logback的实现.

为什么要有一个日志门面,而不是直接调用logback呢?

答案是:为了解耦.日志门面可以帮助我们去对接不同的日志实现框架.在项目中的代码,我们只要调用slf4j的对象与使用其方法就好了.我们可以并不用去关心底层日志的实现,如果当项目想要替换一个日志的实现框架时也不会影响到项目的代码,因为我们调用的一直是日志的门面而不是日志实现的本身. 

日志对象的获取

在程序中想要打印日志,首要获取日志门面(SLF4J)的日志工厂对象.

springboot中已经内置了,我们直接调用就好.不需要额外添加依赖了.

//Logger为slf4j
    private static Logger logger = LoggerFactory.getLogger(User.class);//参数为类

 日志工厂在得到日志对象时需要将类名传输进去,这样才能定位到日志是由哪一个类进行发送的.

日志的分类

日志根据优先级被分成六大类,分别是(优先级由1-6递增):

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

日志的级别有什么用呢?

日志只会打印比目前级别大与包括其本身的日志类型.

例如,目前的级别为info,则日志只会打印info,warn,error,fatal级别类型的日志.  

因为一个项目中的日志信息是非常多的,这样分类能够更好的让程序员排查出所需的信息.  

日志的级别设置

我们可以在项目的配置文件中设置日志的优先级.

笼统的方式,root表示整个项目 

logging.level.root=fatal #将日志的级别设置成faftal

在同一个项目的不同类下设置不同的级别为:

#根据路径找到类来设置级别
logging.level.com.example.demo.User=error
logging.level.com.example.demo.Student=warn

 

但在slf4j中只支持设置四个等级,error,warn,info与debug.

像这里设置了fatal,但还是会打印error等级

日志的打印

方法一:

我们只要调用slf4j的Logger对象就好了

@Controller
public class Log {
    //Logger为slf4j
    private static Logger logger = LoggerFactory.getLogger(User.class);

    @PostConstruct
    public static void getLogger() {
        logger.error("救命啊这是个错误!");
        logger.info("啊啊啊啊");
        logger.trace("我是trace");
    }
}

方法二:

搭配Lombook框架与@Slf4j注解来使用.

直接使用log对象,log对象是由Lombook提供的特定对象名,只能使用log. 

@Slf4j
public class Log {
    @PostConstruct
    public static void getLogger() {
        log.error("我是lombook搭配@slf4j标签实现的");
    }
}

我们可以在targe下查看.class文件中的代码,就可以发现是lombook自动为我们创建了当前类下的logger对象

日志的持久化

上面我们日志的输出都是在idea的控制台上,当重启一遍服务器,日志就都会被清空了.

所以日志的持久化也是很重要的.

只要在配置文件中配置日志的路径与文件名即可.

logging.file.path=D:\\JAVA-home\\logs
logging.file.name=spring-test.log

就可以将日志以log的形式存储到计算机中. 

日志存储成一个文件最大的内存限制为10MB,只要大于10MB就会生成一个新的日志文件来存储日志. 

更多推荐

C语言中的类型转换有哪些方式?

C语言中的类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。类型转换在编程中非常常见,因为它允许您在不损失数据的情况下在不同数据类型之间进行操作和赋值。在C语言中,类型转换有多种方式,包括隐式类型转换和显式类型转换。本文将详细介绍这些类型转换方式以及它们的应用场景。隐式类型转换隐式类型转换,也称为自动类型转换

Centos7安装wps无法打开及字体缺失的问题解决

在centos7上安装了最新的wps2019版本的wps-office-11.1.0.11704-1.x86_64.rpm,生成了桌面图标并信任,可以新建文件,但是软件无法打开。在终端执行如下命令,用命令行启动wps:cd/opt/kingsoft/wps-office/office6/./wps提示"/lib64/l

Shell开发实践:服务器的磁盘、CPU、内存的占用监控

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。🎉欢迎👍点赞✍评论⭐收藏文章目录🚀一、前言🚀二、关于他们🔎2.1CPU(中央处理器)🔎2.2内存(也称

Ubuntu安装深度学习环境相关(yolov8-python部署)

Ubuntu安装深度学习环境相关(yolov8-python部署)本文将从如下几个方面总结相关的工作过程:1.Ubuntu系统安装(联想小新pro16)2.显卡驱动安装3.测试深度学习模型1.Ubunut系统安装之前在台式机上安装过Ubuntu,以为再在笔记本上安装会是小菜一碟,但没想还是废了一些功夫。安装所需要的步骤

linux下使用crontab定时器,并且设置定时不执行的情况,附:项目启动遇到的一些问题和命令

打开终端,以root用户身份登录。运行以下命令打开cron任务编辑器:crontab-e如果首次编辑cron任务,会提示选择编辑器。选择你熟悉的编辑器,比如nano或vi,并打开相应的配置文件。在编辑器中,添加一行类似以下的命令来设置定时任务:关机00***shutdown-hnow重启4018***sudoshutd

《UnityShader 入门精要》 笔记01

UnityShader入门精要笔记01第二章渲染流水线2.1综述2.1.1什么是流水线2.1.2什么是渲染流水线2.2CPU和GPU之间的通信2.2.1把数据加载到显存中2.2.2设置渲染状态2.2.3调用DrawCall2.3GPU流水线2.3.1概述2.3.2顶点着色器2.3.3裁剪2.3.4屏幕映射2.3.5三角

释放创造力:生成式 AI 和 Amazon SageMaker 如何帮助企业为营销活动制作广告素材...

广告公司可以使用生成式AI和文字转图像根基模型,制作创新的广告素材和内容。在这篇文章中,我们将演示如何使用AmazonSageMaker从现有的基本图像生成新图像。这是一项完全托管式服务,用于大规模构建、训练和部署机器学习模型。采用此解决方案,企业无论规模如何,都可以比以往更快地制作新的广告素材,而且大幅降低成本。这样

全国职业技能大赛云计算--高职组赛题卷①(容器云)

全国职业技能大赛云计算--高职组赛题卷①(容器云)第二场次题目:容器云平台部署与运维任务1DockerCE及私有仓库安装任务(5分)任务2基于容器的web应用系统部署任务(15分)任务3基于容器的持续集成部署任务(15分)任务4Kubernetes容器云平台部署与运维(15分,本任务只公布考试范围,不公布赛题)需要环境

leetcode&lintcode分类刷题:图论(三、多源最小距离问题)

1、本次总结的题目通常是多个源头节点分别求解到达目标节点的最小距离,目标节点可能为多个,也可能为一个;要采用广度优先搜索的方法,但先提前入队的不是源头节点了,而是目标节点,由目标节点为基准一圈一圈的更新能够达到的“新目标”位置,每一圈更新能够达到的位置最多只会访问一次2、常见的题型会设置障碍物,在一些细节的特殊情况上,

KubeSphere 在互联网医疗行业的应用实践

作者:宇轩辞白,运维研发工程师,目前专注于云原生、Kubernetes、容器、Linux、运维自动化等领域。前言2020年我国互联网医疗企业迎来了“爆发元年”,越来越多居民在家隔离期间不方便去医院看诊,只好采取在线诊疗的手段。互联网医疗企业的迅速发展的同时,也暴露出更多的不足。互联网医疗作为医疗行业发展的趋势,对于解决

《研发效能(DevOps)工程师国家职业技术认证》工信部教考中心认证证书:塑造研发效能的黄金标准丨IDCF

随着科技的飞速发展和市场竞争的日益激烈,高素质的技术管理人才在当今社会中扮演着越来越重要的角色。特别是在信息技术领域,企业对于拥有专业技能和丰富知识的研发效能管理与技术人才的需求愈发旺盛。工业和信息化部教育与考试中心(以下简称工信部教考中心)颁发的认证证书,作为专业技能和知识水平的官方认可,其含金量在业界有着极高的认可

热文推荐