【springBoot篇2】springBoot日志篇

news2024/11/18 16:33:56

目录

一、日志有什么作用

作用1:快速定位问题的所在之处(最主要)

作用2:记录用户的登录日志

作用3:记录系统的操作日志

作用4:记录方法的执行时间

二、日志怎样使用

  ①先得到日志对象(slf4j的Logger对象)  ​​​编辑

②根据日志等级来输出日志内容

 三、日志的级别(由低到高:6个)

有哪些级别:

     trace

     debug

     info

     warn

    error

    fatal

日志的级别规则:

日志的级别设置:

全局日志(作用于整个项目):

设置局部日志(指定某一个类)

日志的持久化(保存到磁盘)

持久化的方式1:设置保存路径 

持久化方式2:设置日志的保存名称

更加简易的添加日志的方式:添加lombok

第一步:需要安装插件(EditStarters)

第二步:添加注解@Slf4j

日志包含哪些内容(6个)

​编辑

为什么@Slf4j可以自动生成这样的一个log对象呢?(lombok的实现原理)

lombok有哪些注解(一览)


一、日志有什么作用

       日志是程序的重要组成部分,如果程序报错了,不打开控制台查看日志,那么很难找到问题的所在地方。


作用1:快速定位问题的所在之处(最主要)

因此,日志有一个很重要的作用,那就是:方便快速定位问题的所在之处

当程序在线上运行的时候出现了bug,那就需要首先查看日志来锁定bug。


作用2:记录用户的登录日志

       假如当某一个用户一天之内的登录次数达到了几万次,那么就需要通过日志来记录这一个用户的非法登录行为,判定用户是正常登录还是恶意的破解


作用3:记录系统的操作日志

方便数据恢复定位操作人


作用4:记录方法的执行时间

记录到具体的方法执行的时间,方便为以后优化程序提供数据支持


二、日志怎样使用

  ①先得到日志对象(slf4j的Logger对象)  ​​


②根据日志等级来输出日志内容

public void sayHi(){
         //各个级别的日志输出
         logger.info("I am info");
         logger.debug("I am debug");
         logger.warn("我是 warn");
         logger.error("我是 error");
    }

 三、日志的级别(由低到高:6个)

有哪些级别:

     trace

      少许的日志,这一个是最低的级别。


     debug

        这个级别用于"调试"的级别


     info

       这个级别是普通的日志信息。(如果不指定日志的级别,那么默认就是这个


     warn

       警告日志:有一些地方存在警告的风险的,就需要使用到这个warn级别的日志


    error

       错误级别的日志,如果发生了一些错误,那么就需要使用这个级别来记录。


    fatal

       发生了比较致命的情况,需要由系统来进行输出,不可以由用户手动进行debug输出。


日志的级别规则:

 规则1:越往上收到的消息就越少,出现的频率就越低

 规则2:当设置了一个级别之后,只有比这个级别及其更高的日志级别才可以输出,否则不可以输出。

 ​


日志的级别设置:

全局日志(作用于整个项目):

需要在application.properties这一个配置文件当中进行日志等级的设置。

可以设置为:trace、debug、info、warning、error、fatal

然后启动一下springBoot项目:


设置局部日志(指定某一个类)

需要使用:logging.level.类的路径

需要注意的是:当局部日志全局日志冲突的时候,一般情况下以局部日志的为标准

局部日志的优先级>全局日志的级别


日志的持久化(保存到磁盘)

持久化的方式1:设置保存路径 

配置文件中需要设置日志的保存路径,当设置了保存的路径之后,那么日志就会自动持久化。

注意事项:

配置文件当中不可以使用\D这样的"\"的方式来进行路径的指明。

要改成:"/"的方式

      这样子,只要项目一启动,那么就会在E:/demo4/log这个位置多出来一个文件夹log,然后会在这个log文件夹下面多一个配置文件出来。

如果真的想改成"\"的形式来进行保存,那么就需要使用到转义:

   


持久化方式2:设置日志的保存名称

配置文件当中设置日志的保存名称,那么日志也会自动进行保存。

然后就可以在对应的路径下面看到这一个日志了:


更加简易的添加日志的方式:添加lombok

第一步:需要安装插件(EditStarters)


第二步:添加注解@Slf4j

代码实现:

/**
 * @author 25043
 */
@Controller
@ResponseBody
@RequestMapping("/user")

@Slf4j
public class UserController {

    @RequestMapping("/sayHi2")
    public void sayHi2(){
        log.info("I am info");
        log.error("I am debug");
        log.warn("我是warn");
        log.error("我是error");
    }
}

日志包含哪些内容(6个)


为什么@Slf4j可以自动生成这样的一个log对象呢?(lombok的实现原理)

编译时期,@Slf4j会为当前类当中设置一个静态从常量属性,这一个属性就是log

通过查看UserController编译之后的.class文件,可以看到这个属性。

UserController的字节码(.class文件) 


lombok有哪些注解(一览)

@Data注解: 

 

 这些注解的原理,就是在编译时期添加对应的方法


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/419306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 无监督学习实用指南:1~5

原文:Hands-on unsupervised learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关…

docker运行服务端性能监控系统Prometheus和数据分析系统Grafana

文章目录一、Prometheus的安装和运行1、使用docker拉取镜像2、创建prometheus.yml文件3、启动容器4、查看启动是否成功5、记录安装过程中出现的错误二、Grafana的安装和运行1、使用docker拉取镜像2、创建grafana3、运行grafana4、查看grafana运行日志5、登录grafana一、Prometh…

学会了selenium 模拟鼠标操作,你就可以偷懒点点点了

目录:导读 前言 01.ActionChains 类常用方法 02.ActionChains 类所有方法 03.ActionChains 使用步骤 04.实战 05.总结 前言 我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息。 这个…

云服务器开启声音的办法

云服务器开启声音的办法 淘小云 云计算从业者,架构师 ​关注 云服务器没有声音是一件很烦恼的事情,那么今天小编给大家分享一下服务器开启声音的方法! 首先您需要先拥有一台windows系统的云服务器,小编这里以腾讯云服务器为例…

( “树” 之 DFS) 687. 最长同值路径 ——【Leetcode每日一题】

687. 最长同值路径 给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之间的边数表示。 示例 1: 输入:root [5,4,5,1,1,5] 输出&…

Loki采集Mysql errorlog,你值得拥有的错误日志聚合系统

说到分布式日志存储系统,大家肯定对ELK、EFK这些工具并不陌生。可是它们都基于Elasticsearch存储,搭建复杂,耗资源,上手难。所以,个人非常推崇Grafana Labs开源的Loki 轻量级日志聚合分析系统 Loki使用标签来作为索引…

java maven学习

我本身是个前端,目前Java都算是自学,为了直接能做Java服务端开发,我其实很多基础都没学,直接上项目做东西。现在来补充常用maven。避免以后出现低级错误。 一、依赖拉不下来解决步骤 1. 检查网络(最好检查&#xff09…

Flutter(六)可滚动组件

目录1.可滚动组件简介Sliver布局模型ScrollableViewportSliver可滚动组件的通用配置2.SingleChildScrollView3.ListView默认构造函数ListView.builderListView.separated固定高度列表ListView 原理无限加载列表,分页添加Header4.滚动监听及控制ScrollController滚动…

SpringCloud-Alibaba学习笔记01——Nacos介绍以及注册中心的演变和Nacos核心功能

文章参考自图灵大佬课程:https://www.bilibili.com/video/BV1fe4y1b7ha?p1&vd_source5f425e0074a7f92921f53ab87712357b 1.什么是Nacos 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 …

threejs 模型 世界坐标系和设备坐标系

前言 开发中遇到需求需要点击屏幕位置处,生成一个类似圆形弹窗面板,这个交互需要进行的坐标转换为模型坐标(局部坐标)>场景坐标(世界坐标)>标准设备坐标>屏幕空间坐标,也就是一个将3D…

开启分片支持需要如何去做?

开启分片支持 如果您计划使您的Javashop系统数据分片,请参考本文档进行相应的配置。 一、做好分片策略 在开始之前,您应该根据自己的业务情况准备好分片策略,包括: 1、要用几个数据库来分片 2、相应的表要分几张表 在本例&#x…

大数据 | 实验一:大数据系统基本实验 | MapReduce 初级编程

文章目录📚实验目的📚实验平台📚实验内容🐇编程实现文件的合并和去重🐇编程实现对输入文件的排序🐇对指定的表格进行信息挖掘📚实验目的 1)通过实验掌握基本的 MapReduce 编程方法。…

警惕“Money Message”勒索软件!数据安全不容忽视

近段时间,出现了一个名为“Money Message”的新型勒索软件,他们利用Money Message 病毒加密文件并以此向受害者勒索巨额赎金。 Money Message勒索软件是用 C编写,包含一个嵌入式JSON 配置文件,用于确定设备的加密方式。加密设备后…

小红书内容种草,曝光渠道分析总结

这是一个内容为王的时代,也是一个内容爆炸的时代。想要在以分享特色的小红书平台,实现内容种草,迅速出圈。今天来马文化传媒就从实操的角度,为大家带来小红书内容种草,曝光渠道分析总结的各种干货! 一、什…

关于图形界面Pyqt与QT的区别选择

关于图像界面(GUI)想必大家都并不陌生,想要将一段已经完善的功能列表进行可视化操作并且具有一定的操作空间,将功能可视化必不可少,一个好的可视化工具不仅可以集成一系列小的文件功能,还能将不同方法之间的…

ubuntu基本环境配置及mysql8.0.32和mysql workbench安装

ubuntu基本环境配置 文章目录ubuntu基本环境配置各种依赖包下载地址一、使用root账号进行远程连接二、防火墙相关设置2.1启用2.2开放和关闭端口数据库mysql安装(8.0.32)工具mysqlworkbench(8.0.32)各种依赖包下载地址 http://cn.archive.ubuntu.com/ubuntu/pool/main/liba/lib…

【1019. 链表中的下一个更大节点】

来源:力扣(LeetCode) 描述: 给定一个长度为 n 的链表 head 对于列表中的每个节点,查找下一个 更大节点 的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值 严…

三天吃透Redis八股文

Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis 的数据是存在内存中的&#xf…

java调用python动态生成光电雷达图

一、编写java调用程序 //http://localhost:8945/api/ExecPy/ExecPyPollutionRadarMap ApiOperation(value "ExecPy") GetMapping(value "/ExecPyPollutionRadarMap") public String ExecPyPollutionRadarMap() {String scriptpath"F:\\demo\\Radar…

如何驱动模拟舵机-Controller 1.0b软件的使用

1.支持平台 win10、win7 win10打开Controller 1.0.exe即可运行;win7需要先安装Controller1.0b资料包\NetFarmwork文件夹中的.net框架组件。 2.电子硬件 我们用以下硬件为例来讲解Controller 1.0b软件的使用: 主控板 Basra主控板(兼容Arduino…