Spring Boot指标监控及日志管理

目录

一、添加Actuator功能

二、SpringBoot指标监控 Spring Boot Admin

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

2. 连接Spring Boot Admin项目

三、SpringBoot日志管理


一、添加Actuator功能

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

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

<!-- 指标监控 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

在配置文件中开启所有监控端点

#开启所有监控端点
management.endpoints.web.exposure.include=*

测试: 

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

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

URL查看的数据
/env环境属性
/health健康检查
/mappings显示所有的@RequestMapping路径
/loggers日志
/info定制信息
/metrics查看内存、CPU核心等系统参数
/trace用户请求信息

例如查询日志信息数据,访问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服务端起步依赖

<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>

修改配置文件 

因为这里是服务端项目,要监控其他项目,因此要单独设置一个端口,就为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);
    }

}

运行项目

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

2. 连接Spring Boot Admin项目

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

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

修改配置文件

# 应用服务 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" ?>
<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{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会自动进行最小化配置。

运行结果如下图:

在代码中打印日志

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

测试结果 

  • 118
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 114
    评论
Spring Boot是一个Java的开源框架,它提供了一个快速构建基于Spring的应用程序的方式。它简化了Spring应用程序的开发,并且集成了大量的其他Spring项目。Spring Boot后台管理源码是Spring Boot框架的后台管理系统的源代码。这个后台管理系统可以用于管理监控Spring Boot应用程序的运行情况,包括配置管理日志跟踪、错误处理、性能监控等功能。 Spring Boot后台管理源码的核心部分包括一个基于Spring框架的Web应用程序,它可以通过浏览器访问,并且提供了用户界面来管理Spring Boot应用程序。这个后台管理系统通常包括多个模块,比如用户管理、权限管理日志管理监控管理等模块,每个模块都有对应的源代码和配置。 在Spring Boot后台管理源码中,可以看到大量的Java代码、HTML模板、样式表、JavaScript代码等。这些源代码主要负责实现后台管理系统的功能,比如通过Java代码来处理用户请求,调用Spring Boot应用程序的接口来获取数据,通过HTML模板和JavaScript代码来实现用户界面等。 除了源代码之外,还有一些配置文件和资源文件,比如Spring Boot应用程序的配置文件、日志文件、静态资源文件等。这些文件也是后台管理系统的重要组成部分,它们的内容会影响后台管理系统的运行和表现。 总的来说,Spring Boot后台管理源码是实现Spring Boot框架后台管理系统的关键部分,它包括了多个模块的源代码、配置文件和资源文件,用于管理监控Spring Boot应用程序的运行情况。通过研究和理解这些源码,可以帮助开发者更好地理解Spring Boot框架的实现原理,并且可以为自己的项目开发提供参考和借鉴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 114
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会洗碗的CV工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值