SpringBoot配置文件日志

news2025/1/17 6:12:06

目录

一、SpringBoot配置文件的作用

二、SpringBoot配置文件的分类

1、application.properties

2、application.yml

3、application.yaml

三、使用配置文件实例--验证码

1、使用Kaptcha插件生成验证码

2、网页需求分析

3、前端页面

4、发送请求

5、服务器作出响应

6、客户端作出响应

7、效果展示

四、SpringBoot日志

1、日志形式

2、打印日志内容

3、解释slf4j

4、日志级别

5、打印不同级别日志

6、修改日志级别输出

7、日志持久化

8、配置日志文件分割

9、配置日志格式

10、使用注解生成日志对象


一、SpringBoot配置文件的作用

很多项目或者框架的配置信息都放在了SpringBoot配置文件中,比如:项目的启动端口、连接数据库的配置信息、有关日志的配置等信息都可以在配置文件中设定。

二、SpringBoot配置文件的分类

配置文件有三种:application.properties、application.yml、application.yaml.

1、application.properties

(1)配置项目端口号为9090:

此时若要访问服务器,端口号就是9090,不再是8080了。

(2)读取配置文件

通过@Value注解 + “${}”读取配置文件内容

(3)properties的优缺点

格式简单,但有很多冗余的信息。

2、application.yml

(1)配置项目端口号为9090以及配置数据库连接信息:

(2)读取配置文件

(3)yml优缺点

可读性高,但格式要求高,不适合写复杂的配置文件。

(4)yml中配置不同类型及空值

(5)value值加单双引号

结论:①字符串不需要加单双引号;②单引号会转义,‘\n’被转义了,不再表示换行符;③双引号不会转义,‘\n’未被转义,依旧表示换行符。

(6)配置对象

①配置文件中写入对象:

②@ConfigurationProperties注解读取配置对象,放在容器中:

③注入输出:

(7)配置集合list

①配置文件中写入list集合:

②@ConfigurationProperties注解读取配置对象,放在容器中:

name2是和上面对应的,不一样会输出null

③注入输出:

(8)配置map

①配置文件中写入map:

②@ConfigurationProperties注解读取配置对象,放在容器中:

③注入输出:

3、application.yaml

与application.yml格式一样,就不做详细说明。

注:当application.properties配置文件与application.yml配置文件都存在时,properties的优先级大于yml

三、使用配置文件实例--验证码

验证码可以由客户端生成,也可以由服务端生成。服务端生成分为两部分:第一部分生成验证码内容,根据验证码内容和干扰项生成图片,返回给客户端;第二部分是将生成的字符串内容存储起来,校验时拿出来。

1、使用Kaptcha插件生成验证码

(1)引入依赖

(2)配置文件中生成验证码

(3)访问配置文件路径

(4)配置验证码生成样式

还可以配置其他内容:图片长宽、干扰项样式,具体内容可以进入官网查看。

2、网页需求分析

(1)页面生成验证码;

(2)输入验证码内容,点击提交,匹配成功页面跳转,不成功提示不正确。

3、前端页面

前端有两个页面:index.html和success.html。

(1)index.html页面

查看效果:

(2)success.html页面

4、发送请求

请求方法:post,请求格式:json,请求内容:输入的内容。路径:/admin/check

5、服务器作出响应

6、客户端作出响应

7、效果展示

四、SpringBoot日志

1、日志形式

2、打印日志内容

(1)直接打印

直接打印的日志信息会缺少一些信息。

(2)按日志形式打印日志

①导入日志对象,是slf4j框架。

②输出打印内容

3、解释slf4j

slf4j是一个日志门面,不是一个真正的日志框架,是其他日志框架的门面。

门面模式:称为外观模式,提供了一个统一的接口,用来访问子系统的许多接口。减少了系统的相互依赖,实现了客户端与子系统的耦合关系;提高了灵活性,客户端无需子系统关心的具体实现方式。

常见的日志框架:log4J,logback

引入日志门面的优点:引入日志门面后只需要维护一套日志文件配置,且当底层框架修改,也不影响日志门面的使用。

4、日志级别

日志级别代表了对应日志信息的问题的严重性,级别越高收到的日志信息越少。一共有6个级别,从高到低为:FATAL、ERROR、WARN、INFO、BEBUG、TRACE。

5、打印不同级别日志

(1)没有设置fatal级别的日志

是因为springboot默认使用的是logback日志框架,logback框架没有fatal级别,被映射到error级别了。出现fatal级别的日志,表明服务器一定程度上已经不可用了。

(2)没有打印debug和trace级别的日志

与日志级别的配置有关,日志输出级别默认是info,只会打印大于等于info级别的日志,即:error、warn、info三个级别的日志。

6、修改日志级别输出

此时就可以打印debug级别的日志了。

7、日志持久化

持久化:日志内容保存下来。

以上日志内容都是被打印在了控制台,若重新启动服务器,日志内容就没有了,所以需要将日志内容保存下来,以便后续发现问题。

(1)配置日志文件名

name后可以跟绝对路径,也可以跟相对路径。

(2)配置日志文件存储目录

该路径下就会放一个文件名固定为spring.log的文件,记录存储的日志内容。

8、配置日志文件分割

以上会存在一个问题:不断往文件中存储日志,文件会越来越大,此时就需要对文件分割。

如果不进行配置,当文件大小超过10MB时也会自动分割。

最开始的日志内容在springboot.log.2024-2-20.0文件中。

9、配置日志格式

%clr(表达式){颜色}:设置输入日志的颜色;

%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}}:日期和时间,精确到毫秒;

%5p:显示日志级别;

%t:线程名,%c:类的全限定名,%L:行号,%thread:线程名称;

10、使用注解生成日志对象

 每个类想打印日志获取日志对象时都需要写入:LoggerFactory.getLogger(xxx.class)。可以使用注解直接获取对象:

也可以打印日志:

注:使用@Slf4j注解时,要先引入lombok依赖。是lombok提供的@Slf4j注解。

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

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

相关文章

反射reflecttion的入门理解+暴力反射的应用简介

反射怎么理解,(个人白话理解,有个类,类中有很多属性、方法、构造器,可以通过一面镜子将类里面的东西像光一样反射出来,被我们看到和使用,reflecttion其实也可以理解为映像,主要为了获取类中私有的东西,通过…

骨传导耳机是什么?骨传导耳机的优缺点是什么

骨传导耳机是什么?骨传导耳机采用一种创新的声音传输方式,它通过人体的颅骨、骨迷路、内耳淋巴液、螺旋器和听觉中枢传递声波。与传统耳机不同,骨传导耳机仅需悬挂在耳旁即可听见声音。 骨传导耳机的优缺点 缺点 相较传统耳机,由…

高数总结(6

目录 1.总结:小结: 1.总结: 小结: 关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解|| 由于本号流量还不足以发表推广,搜我的公众号即可:

走进科学系列之遭遇鬼打墙的OUTLOOK

网管小贾 / sysadm.cc 正值春运,车站里熙熙攘攘、人头攒动。 鲍勃和约瑟夫正在候车室,等待检票。 “嗨!约瑟夫!快来看看,我的电脑出问题了!” “得了吧,马上就要检票上车了,你就不…

第99讲:MHA高可用集群配置实战:邮件告警和Binlog服务器搭建详解

文章目录 一、配置当MHA故障切换时发生邮件告警1.准备发送邮件的脚本2.配置MHA支持邮箱告警3.重启MHA4.模拟主库故障切换观察邮件接收 二、为MHA高可用集群配置Binlog服务器1.为什么要配置Binlog服务器2.搭建Binlog服务器2.1.创建保存主库Binlog的路径2.2.配置MHA增加Binlog服务…

MySQL Replication

0 序言 MySQL Replication 是 MySQL 中的一个功能,允许从一个 MySQL 数据库服务器(称为主服务器或 master)复制数据和数据库结构到另一个服务器(称为从服务器或 slave)。这种复制是异步的,意味着从服务器不…

特征选择、特征降维和特征提取到底有什么区别和联系?这篇文章一次性给你讲清楚!

目录 一、特征选择: 1.最大互信息系数(MIC): 2.互信息(MI): 3.最大相关最小冗余算法(mRMR): 4.支持向量机递归特征消除(SVM_RFE): 二、特征降维: 1.主成分分析(PCA): 2.核主成分分析(KP…

有哪些好用的网页原型网站?

与桌面端相比,在线网页原型网站的使用具有优势,因为在线网页原型网站在整个使用过程中不需要安装,在线网页原型网站在任何地方都没有限制。更重要的是,无论是现在使用的Linux,在线网页原型网站在操作系统中都没有限制、…

智胜未来,新时代IT技术人风口攻略-第六版(弃稿)

文章目录 前言鸿蒙生态科普调研人员画像高校助力鸿蒙 - 掀起鸿蒙教育热潮高校鸿蒙课程开设占比 - 巨大需求背后是矛盾冲突教研力量并非唯一原因 - 看重教学成果复用与效率 企业布局规划 - 多元市场前瞻视野全盘接纳仍需一段时间 - 积极正向的一种严谨态度企业对鸿蒙的一些诉求 …

opencv安装介绍以及基本图像处理详解

文章目录 一、什么是OpenCV ?二. OpenCV 安装1. 下载地址2.安装命令:pip install opencv-python 三、图像基础1. 基本概念2. 坐标系3. 基本操作(彩色图片)(1)读取图片:cv2.imread( )&#xff08…

OPPO公布全新AI战略,AI 手机时代再提速

2024年2月20日,深圳——今日OPPO 举办 AI 战略发布会,分享新一代 AI 手机的四大能力特征,展望由AI驱动的手机全栈革新和生态重构的趋势,并发布由OPPO AI 超级智能体和 AI Pro 智能体开发平台组成的OPPO 1N 智能体生态战略&#xf…

数论 - 容斥原理

文章目录 一、题目描述输入格式输出格式数据范围输入样例:输出样例: 二、算法思路三、代码 在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思…

酷开科技 | 酷开系统壁纸模式,让过年更有氛围感!

在阵阵爆竹声中,家家户户都沉浸在浓浓的年味中。过年,是团圆,是温暖。团团圆圆的日子里,仪式感不可少,换上一张喜气洋洋的电视壁纸吧,寓意幸福一年又一年。打开酷开系统壁纸模式挑选一张年味十足的壁纸&…

pyside6 两个页面互相跳转

kuka示教器嵌套UR界面操作ros中rviz的UR机器人-CSDN博客 接上一篇,探索了两个页面互相跳转的操作。 1.两个页面 页面:UrWin,主要显示Ur机器人的VNC远程控制界面 页面:ZcWin,主要是选择插针的长度 在Ur远程界面点击下一步会跳转到针选择界面…

前端-游览器渲染原理

渲染 render vue react render 游览器渲染 html字符串 - > 像素信息 游览器是如何渲染页面的? 当游览器的网络线程收到 html文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列 在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程. 整…

梵宁教育被误解投诉诈骗全过程始末

近日,梵宁教育因被部分用户投诉涉嫌诈骗而引起了社会的广泛关注。作为一家有着深厚教育背景和良好教育理念的机构,梵宁教育对此事表示高度重视,并在此做出如下澄清和回应。 近期,梵宁教育接到了一些用户的投诉,称其在参…

每日一题——LeetCode1464.数组中两元素的最大乘积

这题就是找数组里的最大值和次大值 方法一 排序 var maxProduct function(nums) {nums.sort((a,b)>b-a)return (nums[0] - 1) * (nums[1] - 1); }; 消耗时间和内存情况: 方法二 一次遍历: var maxProduct function(nums) {let first-1,second-…

常见面试题:TCP的四次挥手和TCP的滑动窗口

说一说 TCP 的四次挥手。 挥手即终止 TCP 连接,所谓的四次挥手就是指断开一个 TCP 连接时。需要客户端和服务端总共发出四个包,已确认连接的断开在 socket 编程中,这一过程由客户端或服务端任意一方执行 close 来触发。这里我们假设由客户端…

工具:clang-format使用

Visual Studio 在扩展-》管理扩展-》联机-》搜索Format on Save (for VS2022)插件,并安装 安装需要关闭VS,安装后重新打开vs。 这样每次保存源文件时就会自动调用vs默认的clang-format.exe对源码进行缩进,空格等进行格式化 如果想使用自定…

Maven依赖下载报错 unable to find valid certification path to requested target

阿里云改了仓库地址&#xff0c;由原来的http改成了https 解决方案一 可以在maven里面中的镜像改成 <mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repo…