目錄
一、添加Actuator功能
二、SpringBoot指標(biāo)監(jiān)控 Spring Boot Admin
1. 創(chuàng)建Spring Boot Admin服務(wù)端項(xiàng)目
2. 連接Spring Boot Admin項(xiàng)目
三、SpringBoot日志管理
一、添加Actuator功能
Spring Boot Actuator可以幫助程序員監(jiān)控和管理SpringBoot應(yīng)用,比如健康檢查、內(nèi)存使用情況統(tǒng)計(jì)、線程使用情況統(tǒng)計(jì)等。我們?cè)赟pringBoot項(xiàng)目中添加Actuator功能,即可使用Actuator監(jiān)控
項(xiàng)目,用法如下:
在被監(jiān)控的項(xiàng)目中添加Actuator起步依賴
<!-- 指標(biāo)監(jiān)控 -->
<dependency>
??? <groupId>org.springframework.boot</groupId>
??? <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在配置文件中開啟所有監(jiān)控端點(diǎn)
#開啟所有監(jiān)控端點(diǎn)
management.endpoints.web.exposure.include=*
測試:?
訪問項(xiàng)目:http://localhost:8080/actuator
可以看到有很多json格式的字符串,這些都是該路徑下的相關(guān)資源信息,并且通過URL可以調(diào)用actuator的功能:
URL | 查看的數(shù)據(jù) |
---|---|
/env | 環(huán)境屬性 |
/health | 健康檢查 |
/mappings | 顯示所有的@RequestMapping路徑 |
/loggers | 日志 |
/info | 定制信息 |
/metrics | 查看內(nèi)存、CPU核心等系統(tǒng)參數(shù) |
/trace | 用戶請(qǐng)求信息 |
例如查詢?nèi)罩拘畔?shù)據(jù),訪問localhost:8080/actuator/loggers
二、SpringBoot指標(biāo)監(jiān)控 Spring Boot Admin
Actuator使用JSON格式展示了大量指標(biāo)數(shù)據(jù),不利于我們查看,我們可以使用可視化工具Spring Boot Admin查看actuator生成指標(biāo)數(shù)據(jù)。Spring Boot Admin是一個(gè)獨(dú)立的項(xiàng)目,我們需要?jiǎng)?chuàng)建并運(yùn)
行該項(xiàng)目。
1. 創(chuàng)建Spring Boot Admin服務(wù)端項(xiàng)目
創(chuàng)建SpringBoot項(xiàng)目,添加SpringMVC和Spring Boot Admin服務(wù)端起步依賴
<dependencies>
??? <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>??? <dependency>
??????? <groupId>org.springframework.boot</groupId>
??????? <artifactId>spring-boot-starter-test</artifactId>
??????? <scope>test</scope>
??? </dependency>
修改配置文件?
因?yàn)檫@里是服務(wù)端項(xiàng)目,要監(jiān)控其他項(xiàng)目,因此要單獨(dú)設(shè)置一個(gè)端口,就為9090吧,然后再自定義一下日志格式
# 端口號(hào)
server.port=9090
#日志格式
logging.pattern.console=%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n
修改啟動(dòng)類
這里我們需要在啟動(dòng)類上方添加注解,證明這是一個(gè)指標(biāo)監(jiān)控服務(wù)端
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);
}
}
運(yùn)行項(xiàng)目
這里是還沒有連接項(xiàng)目進(jìn)行指標(biāo)監(jiān)控的?
2. 連接Spring Boot Admin項(xiàng)目
同樣地,被監(jiān)控項(xiàng)目添加Spring Boot Admin客戶端起步依賴
<dependency>
??? <groupId>de.codecentric</groupId>
??? <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
修改配置文件
# 應(yīng)用服務(wù) 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
運(yùn)行項(xiàng)目
此時(shí)Spring Boot Admin即可連接被監(jiān)控的項(xiàng)目,再刷新就可以看到有實(shí)例連接成功。
三、SpringBoot日志管理
SpringBoot默認(rèn)使用Logback組件作為日志管理。Logback是log4j創(chuàng)始人設(shè)計(jì)的一個(gè)開源日志組件。在SpringBoot項(xiàng)目中我們不需要額外的添加Logback的依賴,因?yàn)樵?spring-boot-parent 中已經(jīng)包含了Logback的依賴。
在 /resources 下添加Logback配置文件logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--定義日志文件的存儲(chǔ)地址-->
<property name="LOG_HOME" value="${catalina.base}/logs/"/>
<!-- 控制臺(tái)輸出 -->
<appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志輸出編碼 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化輸出:%d表示時(shí)間,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度%msg:日志消息,%n是換行符-->
<pattern>%d{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表示時(shí)間,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度%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>
<!-- 日志輸出級(jí)別 -->
<root level="info">
<appender-ref ref="Stdout"/>
<appender-ref ref="RollingFile"/>
</root>
</configuration>
注:Logback配置文件名為logback-test.xml或logback.xml,如果classpath下沒有這兩個(gè)文件,LogBack會(huì)自動(dòng)進(jìn)行最小化配置。
運(yùn)行結(jié)果如下圖:
在代碼中打印日志
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!";
}
}
?如果日志過多,可以屏蔽一些包的日志,在配置文件中配置
#屏蔽org包中的日志輸出
logging.level.org=off
測試結(jié)果?
文章來源:http://www.zghlxwxcb.cn/news/detail-738382.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-738382.html
到了這里,關(guān)于Spring Boot指標(biāo)監(jiān)控及日志管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!