spring boot admin 2.2 获取日志失败_SB实战20-Spring Boot的日志和报告

上篇我们学习了《SB实战19-Spring Boot的外部配置》,本篇我们学习Spring Boot的日志和报告。

29cf4d9891a06f12529798dd248b5e40.png

4 日志和报告

4.1 日志

日志是对应用运行时进行调试和分析的重要工具。Spring Boot使用SLF4J作为日志的API,LogbackLog4j2Java Util Logging都可以作为日志提供者,Spring Boot默认使用Logback作为日志提供者。

4.1.1 日志级别配置

我们可以在application.yml文件通过logging.level来配置指定包的日志级别,如:

logging.level.org.springframework.web: DEBUG

设置前:

0023a9b541ef98c18826f073afd8b0fd.png


设置后:

8730d6cea4113e8d5dcdcc874a2ca7bc.png

4.1.2 记录到文件

默认情况下,Spring Boot只会将日志输出到控制台,如果想将日志输出到文件,我们可以通过logging.file.name或者logging.file.path来定制:

logging.file.name: /Users/wangyunfei/log/log.log 
logging.file.path: /Users/wangyunfei/log # 默认文件名为spring.log

4.1.3 切换日志提供者

若我们将默认的日志提供者从Logback切换成Log4j2也是很简单的,和我们前面切换tomcat到jetty类似,但是又有区别,因为很多Spring Boot的Starter都默认了以Logback作为日志提供者,我们需要给每个Starter都exclude太麻烦,我们可以像下面这样处理:

dependencies {   implementation 'org.springframework.boot:spring-boot-starter-web'   implementation 'org.springframework.boot:spring-boot-starter-log4j2'}configurations {    all{        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'    }}

4.2 报告

4.2.1 错误报告

Spring Boot为我们在META-INF/spring.factories(位于spring-boot-2.2.x.RELEASE.jar)注册了失败分析器:

2f577af932c3183663f0220fb2d55318.png


当应用启动因为某些原因失败时,会给我们问题描述和问题的解决方案。如端口冲突:

4e75418645ec0dcefba59680402dcf1c.png

4.2.2 自动配置报告

当我们在application.yml文件设置debug: true时,控制台会输出自动配置报告。报告包含:

  • 已使用的自动配置(Positive matches:);
  • 未使用的自动配置(Negative matches);
  • 已关闭的自动配置(Exclusions);
  • 无条件执行的自动配置(Unconditional classes)。
833a74ae7b4985c3f2bf76f90c86dd85.png
9cd9fda584b68d022006056c8da5be4a.png

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

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

相关文章

oracle树状排序,Oracle树状结构查询

oracle用表的形式组织数据,某些数据还呈现树状结构,提供了对这些数据的组织、查询等功能。在扫描树结构表时,要依次访问树中的每一个节点,并且每个节点只能访问一次,其步骤如下:1:从根节点开始2…

python numpy读取数据_大神教你python 读取文件并把矩阵转成numpy的两种方法

导读 今天小编就为大家分享一篇python 读取文件并把矩阵转成numpy的两种方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 在当前目录下: 方法1: file open(‘filename) a file.read() b a.split(‘\n)#使用…

datagrid wpf 获取选中_c# WPF DataGrid 获取选中单元格信息

private void Button_Click(objectsender, RoutedEventArgs e){DataGridCell cell dg.GetCell(1, 2);TextBlock tb cell.Content asTextBlock;Console.WriteLine(tb.Text);}public static classDataGridExtension{/// ///获取DataGrid控件单元格/// /// DataGrid控件/// 单元格…

redis哨兵高可用-源码篇

前段时间写过两篇redis哨兵的文章,一篇是redis哨兵模式的搭建。另外一篇是redis哨兵主从切换的原理,。 当时写的原理篇,是手动模拟主节点故障,然后查看主从切换的日志推算哨兵主从切换的流程。但是感觉这样搞出来的流程太粗,忽略了很多细节,真正要搞明白…

python获取网页数据对电脑性能_【Python】网页数据爬取实战

由于网页结构跟之前有变化,还不是很熟悉。代码待完善,问题记录:腾讯新闻二级网页内容爬取有问题。链家网站头文件没有用到。爬取一条腾讯视频的header内容,存入txt。要求:包含网页链接包含title包含所有headers信息imp…

python集合去重_python集合去重

[python中对list去重的多种方法 怎么快速的对列表进行去重呢,去重之后原来的顺序会不会改变呢? 1.以下的几种情况结果是一样的,去重之后顺序会改变: i [1,2,3,3,4,2,3,4,5,6,1] news_i [] for id in i: if id not in news_i: news_i.append(…

linux进程pid分配规则,Linux进程pid分配法【转】

一. 概述Android系统创建进程,最终的实现还是调用linux fork方法,对于linux系统每个进程都有唯一的 进程ID(值大于0),也有pid上限,默认为32768。 pid可重复利用,当进程被杀后会回收该pid,以供后续的进程pid…

sqlserver date类型和字符串比较_基于SQL Server数据库搭建主从复制实现读写分离实战演练...

一、课程介绍读写分离(主从同步)从字面意思就可以理解,就是把对数据库的读操作和写操作分离开。读写分离在网站发展初期可以一定程度上缓解读写并发时产生锁的问题,将读写压力分担到多台服务器上。读写分离的基本原理是让主数据库处理事务性增、改、删操…

linux非标准头文件,Linux学习:unix的标准化的实现(Linux中各种限制-数据类型-各种标准化头文件介绍)...

作为Linux的前身,unix标准化是十分重要的。我在这里挑几个重要的点说明。1:Linux中各种限制。Linux中限制有编译时限制和运行时限制,另外有一些限制是由于我们的实现不同而不同,因此我们需要调用对应的函数获取对应的值不同。(eg&…

python怎么导入大小字母_python遍历小写英文字母的方法

python遍历小写英文字母的方法在c、c等语言中,可以用字符1的for循环来遍历小写的26个英文字母,但是由于python语言的特殊性,通过a 1这种代码并不能成功遍历,以下是在python中遍历英文字母的简洁代码:import stringfor…

51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...

一、实操演示- 按键控制蜂鸣器1、图文详细独立按键硬件电路蜂鸣器硬件电路2、连接方式:J20的第3号引脚连接到J7引脚,即P15连接J7。J29的第7、8号引脚连接到JP1的第1、2号引脚,即P31连接k1,P30连接k2。下载程序后,观察现…

linux怎么运行g77,Linux安装g77编译器的技巧

在Ubuntu10.10系统中,g77已经被gfortran完全替代了,但并不能完全兼容过去的g77,这样就不能使用一些用977编译的程序了。所以我们只能自己再安装g77了。今天华军小编给大家展示的是Linux安装g77编译器的技巧,精心挑选的内容希望大家…

oracle 结果集已耗尽_java.sql.SQLException: 结果集已耗尽

编写了jsp谁能帮忙看下有什么问题编写了jsp 谁能帮忙看下 有什么问题技术交流ResultSet rsnull;String str"select publish_id,publish_name,publish_time,publish_text from comment_tb order by publish_time desc ";query.connect();rsquery.select(str);while(rs…

vs使用未初始化的内存怎么解决_遇到C语言内存错误怎么办?一定要找准这六个原因...

一、没有为指针分配内存定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。浅显的例子就不举了,这里举几个比较隐蔽的例子。1、结构体成员指针未初始化struct student { char *name; int score; }stu,*pstu; int main() …

linux服务器如何设置双网卡,linux服务器设置(双网卡共享上网)

一、网络拓补结构:服务器:两网卡的设置:eth0:202.96.168.100 掩码:255.255.255.0 网关:202.96.168.68 #与 Inte.Net 相联eth1:192.168.1.1掩码:255.255.255.0#与局域网相联客户机子网段:192.1…

pwn环境搭建_pwndbg、pwntools环境搭建(Unix系统)

目录[TOC]pwndbg环境搭建项目地址https://github.com/pwndbg/pwndbg搭建过程1、安装环境基础gitpythonpython-pip2、安装过程使用git命令克隆远程项目到本地。git clone https://github.com/pwndbg/pwndbg进入项目根目录并执行一键安装脚本cd pwndbg && ./setup.sh该脚…

cad求和插件_黑科技 | 无BIM建模下平面CAD自动生成门窗表

如果你接到的施工图既不是用天正出的,也不是用revit出的,还得统计门窗表,那么你需要读完这篇文章。为了能够让自己和所有底层同行们从这项无脑又烧脑的机械劳动中解脱,C君近期利用茶余饭后的时间开发了一个小插件,可以…

linux数据库实例开机启动,linux下数据库实例开机自启动设置

linux下数据库实例开机自启动设置 1、修改/oratab [rootorg54 ~]# vi/etc/oratab --把N改为Y,如下提示 # This file is used by ORACLEutilities. It is created by root.sh # and updated by the Database ConfigurationAssistant when creating # a datablinux下数…

panic 苹果aop_Go Web开发之Revel - 拦截器

一个拦截器是一个框架在调用action方法前或后调用的函数. 它允许一种AOP的形式, 它经常被用于做下面几种事情:Request loggingError handlingStats keeping在Revel里, 一个拦截器能接受两种形式:1. 函数拦截器: 一个函数满足没有访问特定的应用程序Controller被调用在应用程序中…

make找不到linux内核函数,linux内核make menuconfig出错

今天实验刚从服务器上迁移过来的维护的linux 9260的内核,使用make menuconfig时出错,报错为:yongtaoyongtao-desktop:~/public/linux_release/linux-2.6.24$ make menuconfigHOSTCC scripts/kconfig/conf.oHOSTCC scripts/kconfig/kxgettex…