SpringBoot笔记整理(二)

SpringBoot笔记整理(一)
SpringBoot笔记整理(二)
SpringBoot笔记整理(三)
SpringBoot笔记整理(四)

Spring Boot与日志(日志框架、日志配置)

1、市面上的日志框架
JUL、JCL、Jboss-logging、logback、log4、log4j2、slf4j……

日志门面日志实现
JCL(Jakarta Commons Logging)、SLF4j(Simple Logging Facade for Java)、Jboss-loggingLog4j JUL(java.util.logging)、Log4j2、Logback

左边选一个门面(抽象层)、右边选一个实现
日志门面:SLF4J;
日志实现:LogBack;

SpringBoot:底层是Spring框架,Spring框架默认是用JCL;
SpringBoot选用 SLF4j和LogBack

2、SLF4j使用
2.1 如何在系统中使用SLF4j
开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法
应该给系统里面导入slf4j的jar 和 LogBack的实现jar

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);logger.info("Hello World");}
}

在这里插入图片描述

每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件还是做成日志实现框架的配置文件

2.2 遗留问题
a (slf4j + logback):Spring (commons-logging)、Hibernate(jboss-logging)、MyBatis……
统一日志记录,即使是和别的框架统一使用slf4j进行输出

在这里插入图片描述
如何让系统中所有的日志都统一到slf4j:
1、将系统中其他日志框架先排除出去;
2、用中间包来替换原有的日志框架;
3、导入slf4j其他的实现

3、SpringBoot日志关系

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.2.1.RELEASE</version><scope>compile</scope>
</dependency>

SpringBoot使用它来做日志功能

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId><version>2.2.1.RELEASE</version><scope>compile</scope>
</dependency>

在这里插入图片描述

总结:
1)SpringBoot底层也是使用slf4j+logback的方式进行日志记录
2)SpringBoot也把其他的日志都替换成了slf4j
3)中间替换包
4)如果我们要引入其他框架,一定要把这个框架的默认日志依赖移除掉
Spring框架用的是commons-logging;
SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架的日志框架排除掉

4、日志使用
4.1 默认配置
SpringBoot默认帮我们配置好了日志

 //记录器Logger logger =  LoggerFactory.getLogger(getClass());@Testvoid contextLoads() {
//        System.out.println();//日志的级别:由低到高  trace<debug<info<warn<error//可以调整输出的日志级别:日志就只会在这个级别及以后的高级别生效logger.trace("这是trace日志");logger.debug("这是debug日志");//SpringBoot默认使用的是info级别的,没有指定级别的就用SpringBoot默认规定的级别  root级别logger.info("这是info日志");logger.warn("这是warn日志");logger.error("这是error日志");}
日志输出格式“%d:表示日期时间%thread:表示线程名%-5level:级别从左显示5个字符宽度%logger{50}:表示logger名字最长50个字符,否则按照句号分割%msg:日志消息%n:换行符%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n    

SpringBoot修改日志的默认配置

logging.level.com.homyit = trace#不指定路径在当前项目下生成springboot.log日志
#可以指定完整的路径
#logging.file = D:/springboot.log
#logging.file = springboot.log#在当前磁盘的根路径下创建spring文件夹和里面的log文件夹:使用spring.log作为默认文件
#logging.path = /spring/log#在控制台输出的日志格式
logging.pattern.console = %d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n#指定问价中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} ===[%thread]=== %-5level=== %logger{50} -==== %msg%n

在这里插入图片描述

4.2 指定配置
给类路径下放上每个日志框架自己的配置文件即可,SpringBoot就不使用默认配置了
在这里插入图片描述
logback.xml:直接就被日志框架识别了;
logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能

<springProfile name="staging"><!-- configuration to be enabled when the "staging" profile is active -->可以指定某段配置只在某个环境下生效
</springProfile><springProfile name="dev | staging"><!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile><springProfile name="!production"><!-- configuration to be enabled when the "production" profile is not active -->
</springProfile>

否则会报错

4.3 切换日志

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

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

相关文章

MATLAB图像处理基础

1.导入数据 1.1 使用readtable("")导入数据&#xff0c;并存储在表格中&#xff0c;使用axis equal可以校正坐标轴纵横比。 letter readtable("M.txt"); plot(letter.X,letter.Y) axis equal1.2 range(x)函数返回x的值的范围&#xff0c;即max(x) - min(…

BBWebImage 设计思路

BBWebImage 设计思路 BBWebImage 是高性能 Swift 图片组件&#xff0c;用于图片下载、缓存、编解码、编辑与展示。 GitHub 地址&#xff1a; https://github.com/Silence-GitHub/BBWebImage 效果图 下载、展示并缓存原图 下载、渐进式解码、编辑图片&#xff0c;缓存编辑后的图…

清华本科、港科大准博士被指论文抄袭,网友:这是有技巧的“洗稿”

来源&#xff1a;整理自新智元、Reddit、知乎等不是吧&#xff1f;清华自动化本科&#xff0c;香港科技大学硕士生发表的顶会论文竟然是抄的&#xff1f;而且抄袭对象还是另一篇顶会论文&#xff1f;近日&#xff0c;眼尖的网友发现两篇分别发表在 ICML 2021 和 ICCV 2021 两大…

MATLAB深度学习入门

1. 加载图像 1.1 使用imread函数加载图像&#xff0c;可以加载GIF、JPEG、PNG等大多数标准文件格式图像。 Import an image img imread("file.jpg")1.2 采用**imshow()**来显示图像。 imshow(img)1.3 采用alexnet函数可以创建预定义的深度网络AlexNet的副本。 de…

SpringBoot笔记整理(三)

SpringBoot笔记整理&#xff08;一&#xff09; SpringBoot笔记整理&#xff08;二&#xff09; SpringBoot笔记整理&#xff08;三&#xff09; SpringBoot笔记整理&#xff08;四&#xff09; Web开发 1、使用SpringBoot&#xff1a; 1&#xff09;创建SpringBoot应用&…

图神经网络,如何变深?

来源&#xff1a;智源社区版式制作&#xff1a;Camel撰文&#xff1a;侯振宇编辑&#xff1a;贾 伟现实世界中很多很多任务可以描述为图(Graph)问题&#xff0c;比如社交网络&#xff0c;蛋白质结构&#xff0c;交通路网数据&#xff0c;图是一个很值得研究的领域。近年来&am…

机器学习分类与性能度量

机器学习分类与性能度量 数据集:训练集(Training Set)、验证集(Validation Set)和测试集(Test Set) 1、 当模型无需人为设定超参数&#xff0c;所用参数都通过学习得到&#xff0c;则不需要验证集。验证集适合多个不同超参数训练多个模型&#xff0c;通过验证集&#xff0c;…

中国人民大学孟小峰教授:“科学数据智能——人工智能在科学发现中的机遇与挑战”...

来源&#xff1a;国家自然科学基金委员会微信公号 孟小峰 博士&#xff0c;中国人民大学教授&#xff0c;博士生导师&#xff0c;CCF会士。主要研究方向为数据库理论与系统、大数据管理系统、大数据隐私保护、大数据融合与智能、大数据实时分析、社会计算等。摘 要随着全球各科…

Java 面向对象语言基础

面向过程 就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候一个一个依次调用就可以了。 面向对象 是把构成问题事务分解成各个对象&#xff0c;建立对象的目的不是为了完成一个步骤&#xff0c;而是为了描叙某个事物在整个解…

全球首例!这台机器人发明了两项新技术,已获专利授权!

文章来源&#xff1a;EETOP几天前前人工智能系统专利申请权有最新发展。南非率先成为第一个授予人工智能专利权的国家&#xff0c;承认人工智能机器人DABUS为「发明者」&#xff0c;6日澳大利亚联邦法院也做出裁决&#xff1a;发明者可以是非人类。 这算是有历史里程碑意义的判…

成员变量、局部变量、实例变量、静态变量、类变量、常量

成员变量&#xff1a; 直接在类中声明的变量叫成员变量(又称全局变量) ▲ 初始化&#xff1a; 如果未对成员变量设置初始值&#xff0c;则系统会根据成员变量的类型自动分配初始值&#xff1a;int分配初始值0、boolean分配初始值false&#xff0c;而自定义类型则分配初始值null…

行业洞见 | 一文了解自动驾驶汽车

文章来源&#xff1a;ancholabs.medium.com文字翻译&#xff1a; 新能源情报局封面配图&#xff1a;原作者驾驶是人类日常从事的活动中最困难的之一。遵循交通规则&#xff0c;通过眼神与其他司机沟通交流、对天气状况做出反应是成为优秀司机的先决条件。在自动驾驶汽车中&…

MATLAB高光谱图像处理基础

介绍高光谱图像的基本知识&#xff0c;便通过MATLAB对高光谱图像进行基本的处理。 文章目录前言一、高光谱图像二、MATLAB高光谱图像处理1.加载.MAT文件数据2.图像的显示3.图像维度变换总结前言 高光谱图像是一个立方体结构&#xff0c;维度为M x N x B&#xff0c;M为水平方向…

中国千亿科技巨头,成功收购英国最大芯片制造商!

来源&#xff1a;世界先进制造技术论坛内容来源&#xff1a;每日经济新闻综合自每经App、界面新闻、财联社等本期编辑&#xff1a;小艾 在全球缺芯的背景下&#xff0c;8月15日&#xff0c;国产芯片巨头闻泰科技&#xff08;600745.SH&#xff09;披露&#xff0c;旗下全资子公…

MATLAB图自编码器

通过MATLAB来实现图自编码器&#xff0c;用于高光谱图像特征的提取。 文章目录前言一、MATLAB相关知识二、编写算法1.图自编码器搭建2.可视化相关参数总结前言 算法输入数据&#xff1a; 图节点属性矩阵&#xff1b;邻接矩阵&#xff1b;概率p&#xff1b; W为自编码器的隐藏…

考夫曼:破解大脑代码并创建真正的人工智能

来源&#xff1a;CSDN博主「CDA数据分析师」原文链接&#xff1a;https://blog.csdn.net/yoggieCDA/article/details/1045567421955年&#xff0c;计算机科学家约翰麦卡锡&#xff08;John McCarthy&#xff09;首次创造了“人工智能”一词。当时&#xff0c;人工智能是对可以表…

MATLAB高光谱图像构建KNN图

在高光谱图像的特征提取过程中&#xff0c;采用非线性降维的方式对高光谱图像降维的过程中&#xff0c;采用图自编码器来对数据进行降维&#xff0c;需要将利用高光谱图像的结构信息和内容信息&#xff0c;则需要将高光谱图像数据构造为一个图结构&#xff0c;图结构的构建需要…

类脑量子叠加脉冲神经网络:从量子大脑假说到更好的人工智能

来源&#xff1a;神经现实作者&#xff1a;曾毅研究团队 |封面&#xff1a;Mario De Meyer排版&#xff1a;光影以深度神经网络为代表的现代人工智能模型在识别图像、语音、文字等模式信息任务取得优异表现。然而&#xff0c;生物大脑具有处理复杂多变的环境信息的能力&#xf…

遥感图像分类原理

1.原理 1.1 每一个像元作为一个样本&#xff0c;波段作为特征&#xff0c;理想情况下&#xff0c;同类地物应该具有相同或相似的特征描述&#xff0c;因此像元在n维特征空间中聚集在一起&#xff0c;而不同地物应该具有不同的特征描述&#xff0c;因此不同特征地物像元在n维空间…

2019第一次作业

10.实验代码 include <stdio.h> int main(void) { int i, f, X, N; scanf("%d",&N); int a [N]; scanf("%d",&X); f0; for(i0;i<N;i){ scanf("%d",&a[i]); if(a[i]X){ printf("%d",i); f; } } if(f0){ printf(&q…