欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot指標(biāo)監(jiān)控及日志管理示例詳解

 更新時(shí)間:2023年11月01日 14:21:58   作者:會(huì)洗碗的CV工程師  
Spring Boot Actuator可以幫助程序員監(jiān)控和管理SpringBoot應(yīng)用,比如健康檢查、內(nèi)存使用情況統(tǒng)計(jì)、線程使用情況統(tǒng)計(jì)等,這篇文章主要介紹了Spring?Boot指標(biāo)監(jiān)控及日志管理,需要的朋友可以參考下

一、添加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=*

測(cè)試: 

訪問(wèn)項(xiàng)目:http://localhost:8080/actuator

可以看到有很多json格式的字符串,這些都是該路徑下的相關(guān)資源信息,并且通過(guò)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ù),訪問(wèn)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 訪問(wèn)端口
server.port=8080
#Spring boot admin訪問(wèn)地址
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!";
    }
}

 如果日志過(guò)多,可以屏蔽一些包的日志,在配置文件中配置

#屏蔽org包中的日志輸出
logging.level.org=off

測(cè)試結(jié)果 

到此這篇關(guān)于Spring Boot指標(biāo)監(jiān)控及日志管理的文章就介紹到這了,更多相關(guān)Spring Boot指標(biāo)監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于mybatis高級(jí)映射多對(duì)多查詢的實(shí)現(xiàn)

    基于mybatis高級(jí)映射多對(duì)多查詢的實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇基于mybatis高級(jí)映射多對(duì)多查詢的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • jpa使用注解生成表時(shí)無(wú)外鍵問(wèn)題及解決

    jpa使用注解生成表時(shí)無(wú)外鍵問(wèn)題及解決

    這篇文章主要介紹了jpa使用注解生成表時(shí)無(wú)外鍵問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Spring Boot使用Druid和監(jiān)控配置方法

    Spring Boot使用Druid和監(jiān)控配置方法

    Druid是Java語(yǔ)言中最好的數(shù)據(jù)庫(kù)連接池,并且能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能。下面來(lái)說(shuō)明如何在 Spring Boot 中配置使用Druid
    2017-04-04
  • 詳解SpringBoot中5種類型參數(shù)傳遞和json數(shù)據(jù)傳參的操作

    詳解SpringBoot中5種類型參數(shù)傳遞和json數(shù)據(jù)傳參的操作

    當(dāng)涉及到參數(shù)傳遞時(shí),Spring?Boot遵循HTTP協(xié)議,并支持多種參數(shù)傳遞方式,這些參數(shù)傳遞方式可以根據(jù)請(qǐng)求的不同部分進(jìn)行分類,
    2023-12-12
  • Java程序包裝成桌面應(yīng)用程序方式

    Java程序包裝成桌面應(yīng)用程序方式

    這篇文章主要介紹了Java程序包裝成桌面應(yīng)用程序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java數(shù)組的定義、初始化、及二維數(shù)組用法分析

    Java數(shù)組的定義、初始化、及二維數(shù)組用法分析

    這篇文章主要介紹了Java數(shù)組的定義、初始化、及二維數(shù)組用法,結(jié)合具體實(shí)例形式分析了java數(shù)組概念、功能、數(shù)組定義、靜態(tài)數(shù)組、動(dòng)態(tài)數(shù)組、二維數(shù)組等相關(guān)使用技巧,需要的朋友可以參考下
    2019-01-01
  • 使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟記錄

    使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟記錄

    這篇文章主要給大家介紹了關(guān)于使用Idea快速搭建SpringMVC項(xiàng)目的詳細(xì)步驟,Spring?MVC是一種基于MVC模式的框架,它是Spring框架的一部分,它提供了一種更簡(jiǎn)單和更有效的方式來(lái)構(gòu)建Web應(yīng)用程序,需要的朋友可以參考下
    2024-05-05
  • lazy?init控制加載在Spring中如何實(shí)現(xiàn)源碼分析

    lazy?init控制加載在Spring中如何實(shí)現(xiàn)源碼分析

    這篇文章主要為大家介紹了lazy?init控制加載在Spring中如何實(shí)現(xiàn)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Spring框架 XML配置事務(wù)控制的步驟操作

    Spring框架 XML配置事務(wù)控制的步驟操作

    這篇文章主要介紹了Spring框架 XML配置事務(wù)控制的步驟操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 基于java文件上傳-原始的Servlet方式

    基于java文件上傳-原始的Servlet方式

    下面小編就為大家?guī)?lái)一篇基于java文件上傳-原始的Servlet方式。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08

最新評(píng)論