提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
SpringBoot之项目管理
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
在当今的软件开发领域,项目管理是至关重要的一环。它确保了项目的按时交付、质量的保证以及团队的高效协作。而在 Spring Boot 框架的加持下,项目管理变得更加高效和便捷。
在这篇博客中,我将介绍两个在 Spring Boot 项目管理中非常重要的方面:指标监控和日志管理。这两个内容对于确保项目的顺利运行和问题的快速定位起着关键作用。
指标监控可以帮助我们实时了解项目的性能和健康状况。通过收集和分析各种指标数据,我们可以及时发现系统的瓶颈、异常情况和性能问题,并采取相应的措施进行优化和修复。日志管理则是我们了解系统运行情况的窗口。它记录了系统在运行过程中产生的各种日志信息,包括错误日志、调试日志和操作日志等。通过有效的日志管理,我们可以快速定位和解决问题,同时还可以进行数据分析和统计,为项目的优化和改进提供依据。
在接下来的博客文章中,我将深入探讨指标监控和日志管理的具体实现方法和最佳实践,分享一些实用的工具和技巧,帮助你更好地管理 Spring Boot 项目。无论你是项目经理、开发人员还是运维人员,这些内容都将对你有所帮助。
让我们一起探索 Spring Boot 的世界,提升项目管理的水平,助力项目的成功交付!
提示:以下是本篇文章正文内容,下面案例可供参考
在 Spring Boot 中,指标监控是指对应用程序的性能指标进行实时监测和收集的过程。通过指标监控,我们可以了解应用程序的运行状况、资源利用率、请求响应时间等关键指标,以便及时发现问题、优化性能和进行故障排除。Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用,用法如下:
1.在被监控的项目中添加Actuator起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.编写配置文件
#开启所有监控端点
management.endpoints.web.exposure.include=*
3.访问项目:http://localhost:8080/actuator
通过URL可以调用actuator的功能:
URL | 查看的数据 |
---|---|
/env | 环境属性 |
/health | 健康检查 |
/mappings | 显示所有的@RequestMapping路径 |
/loggers | 日志 |
/info | 定制信息 |
/metrics | 查看内存、CPU核心等系统参数 |
/trace | 用户请求信息 |
Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源工具。它提供了一个集中式的界面,用于监控和管理多个 Spring Boot 应用程序。
使用 Spring Boot Admin 查看 actuator 生成的指标数据有以下几个优点:
使用 Spring Boot Admin 查看 actuator 生成的指标数据可以提供一个集中化、可视化、实时的监控和管理界面,帮助你更好地理解和优化应用程序的性能。
1.创建SpringBoot项目,添加SpringMVC和Spring Boot Admin服务端起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
2.修改配置文件
# 端口号
server.port=9090
#日志格式
logging.pattern.console=%d{HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n
3.修改启动类
@SpringBootApplication
@EnableAdminServer //开启Spring Boot Admin服务端
public class MyadminApplication {
public static void main(String[] args) {
SpringApplication.run(MyadminApplication.class, args);
}
}
4.在被监控项目添加Spring Boot Admin客户端起步依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.6.0</version>
</dependency>
5.修改配置文件
#Spring boot admin访问地址
spring.boot.admin.client.url=http://localhost:9090
6.此时Spring Boot Admin即可连接被监控的项目
默认情况下,SpringBoot 使用 Logback 组件来管理日志。Logback 是由 log4j 的创始人设计的一个开源日志组件。在 SpringBoot 项目中,我们无需额外添加 Logback 的依赖项,因为 spring-boot-parent 已经包含了 Logback 的依赖。
1.在/resources下添加Logback配置文件logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--定义日志文件的存储地址-->
<property name="LOG_HOME" value="${catalina.base}/logs/"/>
<!-- 控制台输出 -->
<appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志输出编码 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/server.%d{yy99-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="info">
<appender-ref ref="Stdout"/>
<appender-ref ref="RollingFile"/>
</root>
</configuration>
注意:Logback配置文件名为logback-test.xml或logback.xml,如果classpath下没有这两个文件,LogBack会自动进行最小化配置。
@Controller
public class LogbackController {
private final static Logger logger = LoggerFactory.getLogger(LogbackController.class);
@RequestMapping("/printLog")
@ResponseBody
public String showInfo(){
logger.info("记录日志");
return "Hello Logback";
}
}
如果日志过多,可以屏蔽一些包的日志,在配置文件中配置
#屏蔽org包中的日志输出
logging.level.org=off
提示:这里对文章进行总结:
通过这两个主要内容,我们可以更好地管理和监控 Spring Boot 项目。指标监控帮助我们实时了解应用程序的性能和健康状况,而日志管理则提供了对应用程序日志的控制和查看能力,有助于故障排查和调试。