SpringBoot使用admin+actuator实现日志可视化的方法

 更新时间:2025年06月28日 11:20:02   作者:天宇_任  
如何在SpringBoot中使用Admin和Actuator实现日志可视化,需配置pom依赖、yml参数及logback路径,确保两者一致,启动服务后通过指定端口访问日志界面,并检查404错误原因,感兴趣的朋友一起看看吧

1:创建admin服务端

pom文件依赖如下

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.3.1</version>
</dependency>

yml配置如下

server:
  port: 8081
management:
  trace:
    http:
      enabled: true
    endpoints:
      web:
        exposure:
          include: "*"
    endpoint:
      health:
        show-details: always

如果需要注册到nacos或者其他注册中心,可以按需添加

启动类需要加上

@EnableAdminServer注解启动

2:服务端配置

pom配置如下

dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.3.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.3.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
    <version>2.3.7.RELEASE</version>
</dependency>

yml配置如下

server:
  port: 8080  # 微服务端口
spring:
  application:
    name: clientServer  # 服务名称
  boot:
    admin:
      client:
        url: http://localhost:8081  # Admin Server地址
logging:
  config: classpath:logback-spring.xml
  file:
    name: logs/clientServer/debug.log
  pattern:
    file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
management:
  endpoints:
    web:
      exposure:
        include: "*"  # 暴露所有Actuator端点(生产环境建议按需配置)
  endpoint:
    health:
      show-details: always
    logfile:
      external-file: ${logging.file.name}
      enabled: true

logback-spring中的地址要和yml地址一致,例:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
   <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
   <property name="log.path" value="logs/clientServer" />
   <!-- 彩色日志格式 -->
   <property name="CONSOLE_LOG_PATTERN"
           value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
   <!-- 彩色日志依赖的渲染类 -->
   <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
   <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
   <conversionRule conversionWord="wEx"
               converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
   <!-- Console log output -->
   <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
      <encoder>
         <pattern>${CONSOLE_LOG_PATTERN}</pattern>
      </encoder>
   </appender>
   <!-- Log file debug output -->
   <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>${log.path}/debug.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
         <fileNamePattern>${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
         <maxFileSize>50MB</maxFileSize>
         <maxHistory>30</maxHistory>
      </rollingPolicy>
      <encoder>
         <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
      </encoder>
   </appender>
   <!-- Log file error output -->
   <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>${log.path}/error.log</file>
      <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
         <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
         <maxFileSize>50MB</maxFileSize>
         <maxHistory>30</maxHistory>
      </rollingPolicy>
      <encoder>
         <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
      </encoder>
      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
         <level>ERROR</level>
      </filter>
   </appender>
   <!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 -->
   <root level="INFO">
      <appender-ref ref="console" />
      <appender-ref ref="debug" />
      <appender-ref ref="error" />
   </root>
</configuration>

启动服务端,打开http://localhost:8081/

就可以看到注册进去的服务了

点击对应的服务名可以看到服务对应的日志

如果日志页面报错404,一定要检查yml配置的日志路径和logback-spring.xml中的路径是否一致

到此这篇关于SpringBoot使用admin+actuator实现日志可视化的文章就介绍到这了,更多相关SpringBoot日志可视化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot mybatisplus如何解决分页组件IPage失效问题

    Springboot mybatisplus如何解决分页组件IPage失效问题

    这篇文章主要介绍了Springboot mybatisplus如何解决分页组件IPage失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 使用Java实现文件夹的遍历操作指南

    使用Java实现文件夹的遍历操作指南

    网上大多采用java递归的方式遍历文件夹下的文件,这里我不太喜欢递归的风格,这篇文章主要给大家介绍了关于使用Java实现文件夹的遍历操作的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Java中String.split()的最详细源码解读及注意事项

    Java中String.split()的最详细源码解读及注意事项

    以前经常使用String.split()方法,但是从来没有注意,下面这篇文章主要给大家介绍了关于Java中String.split()最详细源码解读及注意事项的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 自己编写IOC控制反转及AOP面向切面

    自己编写IOC控制反转及AOP面向切面

    本文展示通过一个案例来自己手写IOC和AOP代码,通过银行转账案例详细的代码编写和文档解释来说明IOC和AOP的思想,会分享存在的问题和解决问题的思路
    2021-06-06
  • Java服务调用失败报Service com.oneinfinite.adflow.api.service.TestService未找到的解决方法

    Java服务调用失败报Service com.oneinfinite.adflow.api.service.T

    在Java开发中,服务调用是常见的操作,尤其是在微服务架构中,然而,服务调用过程中可能会遇到各种问题,下面我们来看看如何解决Service com.oneinfinite.adflow.api.service.TestService with version 0.0.0 not found的问题吧
    2025-03-03
  • SpringBoot与Quartz集成实现分布式定时任务集群的代码实例

    SpringBoot与Quartz集成实现分布式定时任务集群的代码实例

    今天小编就为大家分享一篇关于SpringBoot与Quartz集成实现分布式定时任务集群的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • java用静态工厂代替构造函数使用方法和优缺点

    java用静态工厂代替构造函数使用方法和优缺点

    这篇文章主要介绍了java用静态工厂代替构造函数使用方法和优缺点,需要的朋友可以参考下
    2014-02-02
  • java 字符串截取的实例详解

    java 字符串截取的实例详解

    这篇文章主要介绍了java 字符串截取的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • Java实现多线程聊天室

    Java实现多线程聊天室

    这篇文章主要为大家详细介绍了Java实现多线程聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Java使用JNDI连接数据库的实现方法

    Java使用JNDI连接数据库的实现方法

    本文主要介绍了Java使用JNDI连接数据库的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论