Springboot集成magic-api

这篇具有很好参考价值的文章主要介绍了Springboot集成magic-api。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、前言

2、springboot集成magic-api

2.1、添加maven依赖

2.2、application.yml配置

2.3、编写测试接口

2.4、启动程序,访问接口

2.5、magic-api脚本

3、magic-api其他语法

4、注意事项


1、前言

今天项目中遇到一个问题,springboot后端项目经常使用log4j输出日志,同时会配置相应日志级别。但是由于开发过程中不经意间都会log.info("xxxx")来打印日志,而线上级别也会控制在info级别。正常不会有什么问题,但是今天有个超长报文传输,恰好日志在控制台输出了这段报文用作跟踪。而log并没有开启缓存以及并行写入,导致IO阻塞,程序无法正常响应。

通常情况下,这种问题的解决措施为:

  1. 直接重启程序
  2. 使用arths动态调整日志级别

arths是个好工具,很适合用于线上排障,应对该场景也可以直接动态调整log级别,而不需要重启服务器。那么今天再介绍另一个可以动态调整日志级别的工具,magic-api。magic-api

Springboot集成magic-api

2、springboot集成magic-api

2.1、添加maven依赖

<dependency>    
    <groupId>org.ssssssss</groupId>    
    <artifactId>magic-api-spring-boot-starter</artifactId>    
    <version>2.1.0</version>
</dependency>

其他springboot的相关依赖就不赘述了。

2.2、application.yml配置

magic-api:
  web: /magic/web    # magic-api控制台访问地址
  resource:          # magic-api数据存储信息配置
    location: workspace/magic/data      # location表示使用本地文件存储,存储路径为工作目录workspace/magic/data下
    datasource:        # datasource表示数据源存储,这里指定使用的数据源, datasource和location选择一个
    

2.3、编写测试接口

@Slf4j
@RestController
@RequestMapping("test")
public class TestController {

    @GetMapping("index")
    public String index(){
        //  trace 级别日志        
        LOGGER.trace("-------trace------");

        //  debug 级别日志        
        LOGGER.debug("-------debug------");

        //  info 级别日志        
        LOGGER.info("-------info------");

        //  warn 级别日志        
        LOGGER.warn("-------warn------");

        //  error 级别日志        
        LOGGER.error("-------error------");
        return "ok";
    }

}

2.4、启动程序,访问接口

当看到控制台输出如下信息,就是已经启动成功了。

Springboot集成magic-api

访问接口:http://localhost:8083/test/index。可以看到日志打印:

Springboot集成magic-api

由于默认日志级别是info,所以看到info以上级别的输出。

2.5、magic-api脚本

打开magic-api控制台:http://192.168.0.109:8083/magic/web/index.html

Springboot集成magic-api

左侧菜单栏选择接口,接着空白处右键创建分组:

Springboot集成magic-api

 Springboot集成magic-api

创建完分组后,创建接口:

Springboot集成magic-api

创建后,在return "Hello magic-api"编辑框内使用如下脚本:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;

var levelName = "debug";
var packageName = "com.xxx";

LoggerFactory.getILoggerFactory().getLogger(packageName).setLevel(Level.toLevel(levelName));

return "OK";

由于springboot中使用了lombok,使用了默认的logback,所以这里的impor实现类需要找对。不然没有效果。

Springboot集成magic-api

输入后,点击右上角的运行按钮。运行完可以再次访问测试接口地址。

可以看到日志级别调整为debug,而程序不用重启。

Springboot集成magic-api

3、magic-api其他语法

magic-api其实是通过JVM的script语言注入进去,提供了其他丰富的功能。这里不赘述,也需要慢慢使用体会。其他的特性语法可以参考文档:

简介 | magic-api

这里只是抛砖引玉而已。

Springboot集成magic-api

4、注意事项

使用magic-api的时候需要注意,正因为如此方便的功能和特性,如果贸然线上使用该插件,很容易导致被人而已攻击注入。所以尽可能避免外网访问,我们的处理措施是ng代理上直接不对外暴露,仅限于内部研发排障使用。

相比这种需要集成在代码中的使用方式,arths可能具有天然的优势,但是magic-api也有其特长,可以双管齐下,取长补短吧。文章来源地址https://www.toymoban.com/news/detail-482066.html

到了这里,关于Springboot集成magic-api的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows10上运行magic keyboard和magic mouse

    所有需要的软件和插件都可以在这里寻找到 链接:https://pan.baidu.com/s/1Y8vjRnznqKP7f8dFFrHoGw?pwd=vpsy 提取码:vpsy 你的windows电脑可能自带了蓝牙,那你直接连接键盘鼠标便可。 若你的windows电脑主板上没有蓝牙,你也可以上网买一个蓝牙接收器,他的价格往往在10RMB左右,效果都差

    2024年02月05日
    浏览(21)
  • 【SpringBoot】| SpringBoot集成Dubbo

    目录 一:SpringBoot集成Dubbo 1. 创建公共项目 2. 创建提供者项目provider 3. 创建消费者consumer项目 4. 注册中心Zookeeper的安装 图书推荐:《Python 自动化办公应用大全》 阿里巴巴提供了 dubbo 集成 springBoot 开源项目, 可以到 GitHub 上 GitHub - apache/dubbo-spring-boot-project: Spring Boot Project f

    2024年02月08日
    浏览(35)
  • 【SpringBoot】| SpringBoot 集成 Redis

    目录 一:SpringBoot 集成 Redis  二:对比 StringRedisTemplate 和 RedisTemplate   图书推荐:《MySQL 8查询性能优化》 tips:前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,感兴趣的同学可以点击网站进行学习 人工智能学习网站 ① Redis是

    2024年02月07日
    浏览(24)
  • 【SpringBoot】SpringBoot集成ElasticSearch

    这段代码是一个基本的 Elasticsearch Java 客户端的配置类,用于创建一个 RestHighLevelClient 实例。 其中 RestHighLevelClient 是 Elasticsearch Java 客户端的高级别别名,是基于 LowLevelClient 之上的封装,提供了一些更加方便的方法和功能。 在这段代码中,使用了 @Value 注解来注入三个配置项

    2024年02月04日
    浏览(35)
  • kafka:java集成 kafka(springboot集成、客户端集成)

    摘要 对于java的kafka集成,一般选用springboot集成kafka,但可能由于对接方kafka老旧、kafka不安全等问题导致kafak版本与spring版本不兼容,这个时候就得自己根据kafka客户端api集成了。 一、springboot集成kafka 具体官方文档地址:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

    2023年04月22日
    浏览(39)
  • SpringBoot教程(十二) | SpringBoot集成JPA

    概念: JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 优势: 标准化 JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证

    2024年01月18日
    浏览(33)
  • SpringBoot教程(十五) | SpringBoot集成RabbitMq

    RabbitMq是我们在开发过程中经常会使用的一种消息队列。今天我们来研究研究rabbitMq的使用。 rabbitMq的官网: rabbitmq.com/ rabbitMq的安装这里先略过,因为我尝试了几次都失败了,后面等我安装成功了会把详细的文章发出来。目前是使用公司的环境进行的调试。 RabbitMQ是一个开源

    2024年02月09日
    浏览(25)
  • 荣耀Magic5至臻版摄像头参数怎么样 荣耀Magic5至臻版电池容量

    荣耀Magic5 至臻版将会采用索尼IMX989 大底传感器,该传感器拥有1/1. 12 英寸大底,支持OIS防抖。索尼IMX989 是1. 02 英寸大底,单像素面积为1.6μm,支持四像素合一技术,融合像素面积可以达到3.2um, 5000 万像素镜头,采用四拜耳色彩阵列,是目前拥有最大底的手机CMOS传感器。 荣

    2024年02月17日
    浏览(35)
  • 魔力屏障 (magic) 题解

    【问题描述】 小 Z 生活在神奇的魔法大陆上。今天他的魔法老师给了它这样一个法阵作为它 的期末考试题目: 法阵由从左至右 n 道魔力屏障组成,每道屏障有一个临界值 a,如果它承受攻 击的魔力值 ≥ a,屏障将会破碎,它所承受的魔力攻击将在魔力值减半后(向下取 整)

    2024年02月07日
    浏览(35)
  • SpringBoot与MyBatis零XML配置集成和集成测试

    原文地址:https://ntopic.cn/p/2023070801/ 源代码先行: Gitee本文介绍的完整仓库:https://gitee.com/obullxl/ntopic-boot GitHub本文介绍的完整仓库:https://github.com/obullxl/ntopic-boot 在Java众多的ORM框架里面,MyBatis是比较轻量级框架之一,既有数据表和Java对象映射功能,在SQL编写方面又不失原生

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包