当前位置: 首页 > news >正文

基于SpringBoot 实现指标监控及日志管理

添加Actuator功能

Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用,比如健康检查、内存使用情况统计、线程使用情况统计等。我们在SpringBoot项目中添加Actuator功能,即可使用Actuator监控

项目,用法如下:

在被监控的项目中添加Actuator起步依赖

org.springframework.boot spring-boot-starter-actuator

在配置文件中开启所有监控端点
#开启所有监控端点
management.endpoints.web.exposure.include=*

测试:
访问项目:http://localhost:8080/actuator

图片

可以看到有很多json格式的字符串,这些都是该路径下的相关资源信息,并且通过URL可以调用actuator的功能:
图片

例如查询日志信息数据,访问localhost:8080/actuator/loggers

图片

SpringBoot指标监控 Spring Boot Admin

Actuator使用JSON格式展示了大量指标数据,不利于我们查看,我们可以使用可视化工具Spring Boot Admin查看actuator生成指标数据。Spring Boot Admin是一个独立的项目,我们需要创建并运
行该项目。

  1. 创建Spring Boot Admin服务端项目

创建SpringBoot项目,添加SpringMVC和Spring Boot Admin服务端起步依赖


org.springframework.boot
spring-boot-starter-web


de.codecentric
spring-boot-admin-starter-server


org.springframework.boot
spring-boot-starter-test
test

修改配置文件

因为这里是服务端项目,要监控其他项目,因此要单独设置一个端口,就为9090吧,然后再自定义一下日志格式

端口号

server.port=9090
#日志格式
logging.pattern.console=%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) — [%-15thread] %cyan(%-50logger{50}):%msg%n

修改启动类

这里我们需要在启动类上方添加注解,证明这是一个指标监控服务端
package com.example.springbootadmin;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
// 开启SpringBoot Admin Server端
@EnableAdminServer
public class SpringbootadminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootadminApplication.class, args);
}
}

运行项目
图片
这里是还没有连接项目进行指标监控的

  1. 连接Spring Boot Admin项目

同样地,被监控项目添加Spring Boot Admin客户端起步依赖

de.codecentric
spring-boot-admin-starter-client

修改配置文件

应用服务 WEB 访问端口

server.port=8080
#Spring boot admin访问地址
spring.boot.admin.client.url=http://localhost:9090
#日志格式
logging.pattern.console=%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) — [%-15thread] %cyan(%-50logger{50}):%msg%n

运行项目

此时Spring Boot Admin即可连接被监控的项目,再刷新就可以看到有实例连接成功。

图片

SpringBoot日志管理

SpringBoot默认使用Logback组件作为日志管理。Logback是log4j创始人设计的一个开源日志组件。在SpringBoot项目中我们不需要额外的添加Logback的依赖,因为在 spring-boot-parent 中已经包含了Logback的依赖。

在 /resources 下添加Logback配置文件logback.xml

<?xml version="1.0" encoding="UTF-8" ?> %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${LOG_HOME}/server.%d{yy99-MM-dd}.log 30 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 10MB

注:Logback配置文件名为logback-test.xml或logback.xml,如果classpath下没有这两个文件,LogBack会自动进行最小化配置。

运行结果如下图:
图片

在代码中打印日志
package com.example.springbootdlogback.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class PrintLogController {
private final static Logger looger = LoggerFactory.getLogger(PrintLogController.class);
@RequestMapping(“/printlog”)
@ResponseBody
public String showInfo(){
looger.info(“记录日志”);
return “Hello Back!”;
}
}
如果日志过多,可以屏蔽一些包的日志,在配置文件中配置

屏蔽or包中的日志输出

#屏蔽org包中的日志输出

http://www.lryc.cn/news/323100.html

相关文章:

  • Linux之看门狗
  • 第十九章 TypeScript 装饰器Decorator
  • 第十四章 TypeScript tsconfig.json配置文件
  • 科技助力高质量发展:新质生产力的崛起与企业数字化转型
  • Redis - 缓存访问 缓存穿透 缓存击穿 缓存雪崩
  • SAP Business Application Studio(BAS)中开发Fiori App的基础知识
  • DashScope - 阿里模型服务灵积
  • 个人信息-求职[web前端]
  • Apache DolphinScheduler 社区开启讲师招募,赶快加入吧!
  • 【HTML面试题】src和href的区别
  • 电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll
  • 安装OneNote for Win10 | Win10/Win11
  • 力扣242. 有效的字母异位词
  • windows server 下的mysql 8.0.28修改数据库目录
  • 【Excel自动化办公】使用openpyxl对Excel进行读写操作
  • 大龄女程序员脱单指南:如何科学评估你的Mr. Right?(含C语言代码示例)
  • 深入剖析Java并发库(JUC)之StampedLock的应用与原理
  • 【PMP】每日一练2
  • 2024年投影仪显示技术怎么选?哪个好?优缺点详解,买前必看
  • Git Bash命令初始化本地仓库,提交到远程仓库
  • Docker 学习笔记一
  • Git一点通
  • 商标转让有哪些好处 商标转让条件 商标转让流程
  • 诺视科技完成亿元Pre-A2轮融资,加速Micro-LED微显示芯片商业化落地
  • Unity定时播放音乐
  • 如何做接口测试?
  • U盘打不开提示格式化怎么办,U盘提示格式化数据恢复
  • LeetCode - 存在重复元素
  • RUST egui体验
  • 详解llamaindex