Spring Boot Actuator 管理日志

22 篇文章 0 订阅
10 篇文章 0 订阅

为了解决以下两个问题:

1、单JAR包应用查看日志需要的时候如果需要远程访问服务器登录查看日志,那样相对比较麻烦

2、生产环境为了解决BUG需要临时更换日志级别,总不能重启服务来解决吧

所以使用了actuator 其中的部分来解决这两个问题。

首先在POM文件中引入actuator依赖:

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>${spring-boot.version}</version>
 </dependency>

配置文件中配置:

management.endpoints.web.base-path=/actuator
management.endpoints.web.exposure.include=logfile,loggers 
management.endpoint.health.show-details=always
logging.file.name=logs/EL-3KJ/EL-3KJ.log

 然后直接可以访问    http://localhost:8085/actuator

得到下列结果:

{"_links":{
        "self"{"href":"http://localhost:8085/actuator","templated":false},
        "logfile:         {"href":"http://localhost:8085/actuator/logfile","templated":false},"loggers":{"href":"http://localhost:8085/actuator/loggers","templated":false},"loggers-name":{"href":"http://localhost:8085/actuator/loggers/{name}","templated":true}}}

其中

logfile 是查看日志文件

loggers是查看日志级别

loggers/{name}是更改日志级别

前端参考代码:

 <TabPane label="接口日志" name="name3">
                级别:
                <RadioGroup v-model="loglevel" type="button" size="small" @on- 
                      change="lvChange()">
                  <Radio label="ERROR"></Radio>
                  <Radio label="INFO"></Radio>
                  <Radio label="DEBUG"></Radio>
                </RadioGroup> <br/><br/>
                文件:<a :href="logfileurl" target="_blank"  > 查看</a>
 </TabPane>



 this.logfileurl = res.dataApi+"actuator/logfile";
 this.loglevelurl = res.dataApi+"actuator/loggers/root";


getLogLevel(){
      this.ajax_get({
        url: this.loglevelurl,
        params: {},
      }).then((res) => {
        this.loglevel=res.configuredLevel
      });
},
lvChange(){
      this.changeLogLevel(this.loglevel)
},
changeLogLevel(level){
      this.ajax_post({
        url: this.tenant.dataApi + "actuator/loggers/root",
        params: {'configuredLevel':level},
      }).then((res) => {
        this.spinShow = false;
        if (!res.code) {
          this.$Notice.success({
            title:'更改日志级别为'+level,
            desc:res.msg
          });
        } else {
          this.$Notice.error({
            title:'更改日志级别失败',
            desc:res.msg
          });
        }
      });
 }

最终效果如下:

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot Actuator是一组可插拔的管理端点,它提供了有关应用程序运行状况的信息,例如健康状况、内存使用情况、日志记录等。下面是Spring Boot Actuator的使用方法和案例。 1. 添加Spring Boot Actuator依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> ``` 2. 配置Spring Boot Actuator 在application.properties文件中添加以下配置: ```properties # 启用所有端点 management.endpoints.web.exposure.include=* # 启用health和info端点 management.endpoints.web.exposure.include=health,info # 配置端点访问路径 management.endpoints.web.base-path=/actuator ``` 3. 访问Spring Boot Actuator端点 启动Spring Boot应用程序后,可以通过以下URL访问Actuator端点: - /actuator/health:应用程序的健康状况。 - /actuator/info:应用程序的信息。 - /actuator/metrics:应用程序的度量指标。 - /actuator/loggers:应用程序的日志记录器。 - /actuator/httptrace:应用程序的HTTP跟踪信息。 - /actuator/env:应用程序的环境变量。 例如,访问/actuator/health端点可以得到应用程序的健康状况: ```json { "status": "UP" } ``` 访问/actuator/metrics端点可以得到应用程序的度量指标: ```json { "counter.status.200.root": 1, "gauge.response.root": 50, "gauge.response.sample": 50 } ``` 访问/actuator/loggers端点可以得到应用程序的日志记录器: ```json { "configuredLevel": "INFO", "effectiveLevel": "INFO", "name": "root" } ``` 访问/actuator/env端点可以得到应用程序的环境变量: ```json { "profiles": [ "default" ], "systemProperties": { "java.runtime.name": "Java(TM) SE Runtime Environment", "user.timezone": "Asia/Shanghai", "java.version": "1.8.0_241", "os.name": "Mac OS X", "user.country": "CN", "user.language": "zh", "java.vm.specification.version": "1.8", "user.home": "/Users/username", "java.awt.headless": "true", "file.separator": "/", "java.specification.vendor": "Oracle Corporation", "java.library.path": "/Users/username/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.", "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM", "user.dir": "/Users/username/workspace/demo", "java.runtime.version": "1.8.0_241-b07", "os.version": "10.15.6", "java.vendor.url": "http://java.oracle.com/", "java.vm.vendor": "Oracle Corporation", "spring.output.ansi.enabled": "ALWAYS", "file.encoding": "UTF-8", "java.vm.specification.vendor": "Oracle Corporation", "java.vendor": "Oracle Corporation", "java.vm.version": "25.241-b07", "line.separator": "\n", "user.name": "username", "java.class.version": "52.0", "java.vendor.url.bug": "http://bugreport.sun.com/bugreport/", "sun.cpu.endian": "little", "sun.io.unicode.encoding": "UnicodeBig", "spring.datasource.password": "******", "spring.datasource.url": "jdbc:mysql://localhost:3306/demo", "spring.datasource.username": "root", "spring.datasource.driver-class-name": "com.mysql.jdbc.Driver", "spring.jpa.database-platform": "org.hibernate.dialect.MySQL5InnoDBDialect", "spring.jpa.hibernate.ddl-auto": "create-drop", "spring.jpa.show-sql": "true", "spring.jpa.properties.hibernate.format_sql": "true" } } ``` 4. 自定义Spring Boot Actuator端点 除了使用默认的Actuator端点外,还可以自定义自己的端点。只需要实现Endpoint接口即可。 例如,以下是一个自定义的端点,它返回当前时间: ```java @Component public class TimeEndpoint implements Endpoint<Long> { @Override public String getId() { return "time"; } @Override public boolean isEnabled() { return true; } @Override public boolean isSensitive() { return false; } @Override public Long invoke() { return System.currentTimeMillis(); } } ``` 启动应用程序后,可以通过访问/actuator/time端点来获取当前时间。 以上就是Spring Boot Actuator的使用方法和案例,它可以帮助我们更好地管理和监控Spring Boot应用程序的运行状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值