SpringBoot运行监控
SpringBoot日志管理
SpringBoot默认已经集成了日志功能,使用的是logback开源日志系统,SpringBoot默认日志输出内容如下:
2021-02-08 20:15:27.007 INFO 15688 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
从左到右分别代表:
- 日期时间:精确到毫秒
- 日志级别:打印ERROR 、WARN 、INFO 、DEBUG 、TRACE等级别日志信息
- 进程ID:当前项目进程ID
- 分隔符:
---
是分隔符,分隔符后面代表具体的日志内容 - 线程名:方括号中间的内容表示线程名称
- 类名:当前日志打印所属的类名称
- 日志内容:开发人员设定的日志具体内容
常用配置如下:
属性名 | 默认值 | 描述 |
---|---|---|
logging.level.root |
INFO | 日志级别 |
logging.file.path |
日志位置 | |
logging.file.name |
日志文件名 | |
logging.config |
日志配置文件 |
基本使用:
//@Slf4j //使用lombok注入logger对象
@SpringBootTest
class LogTest {
private Logger logger = LoggerFactory.getLogger(this.getClass()); //为当前类注入一个日志打印对象
@Test
void testLog() {
logger.trace("trace");
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
}
}
SpringBoot实时监控
使用官方提供的spring-boot-starter-actuator
启动器,该启动器依赖了micrometer
框架为整个SpringBoot应用提供被监控的接口,当访问http://IP:端口/actuator
时就会返回监控信息,但这些都是json格式的数据,而且默认情况下这些监控接口只开启了JMX暴露方式,而为开启Web暴露方式,所以第三方就提供了开源的SpringBoot Admin可视化监控系统
监控端和被监控端分别是两个不同的SpringBoot应用,被监控端也就是我们的SpringBoot项目
被监控端
<dependency> <!--web依赖-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency> <!--SpringBoot Admin监控客户端依赖-->
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>x.x.x</version>
</dependency>
再修改客户端的配置文件,指定要连接的服务器端
spring.boot.admin.client.url=http://127.0.0.1:8080
#配置当前客户端要连接的服务器地址
spring.boot.admin.client.instance.name=CLIENT1
#客户端的名称,用于区分不同的客户端(微服务)
management.endpoints.web.exposure.include=*
#客户端展示哪些信息,*表示展示全部信息
监控端
<dependency> <!--web依赖-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency> <!--SpringBoot Admin监控客户端依赖-->
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>x.x.x</version>
</dependency>
在被监控端的SpringBoot入口类上添加@EnableAdminServer
注解开启SpringBoot Admin监控管理功能,之后运行该项目即可访问(web场景启动器默认端口是8080)
@SpringBootApplication
@EnableAdminServer // 开启监控
public class SpringBootMonitorManagerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootMonitorManagerApplication.class, args);
}
}
Comments NOTHING