首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

LLog:Spring轻量级请求日志监控组件,集成管理面板,支持多条件查询检索

编程知识
2024年09月10日 08:20

开源地址

https://gitee.com/lboot/LLog

简介

LLog是基于AOP构建的请求日志记录和查询工具库,通过引入该工具库,完成配置,实现对接口请求日志的记录、查询检索等功能。

准备

在引入任何 Lucy系列依赖之前,需要完成jitpack镜像仓库的配置。

<repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://www.jitpack.io</url>
        </repository>
</repositories>

集成

引入

pom中引入,版本号与发行版本一致。

<dependency>
        <groupId>com.gitee.lboot</groupId>
        <artifactId>LLog</artifactId>
        <version>0.0.8</version>
</dependency>

配置

1. 白名单配置

LLog日志管理页面访问,默认仅支持 127.0.0.1的请求来源访问(即支持本地访问),如果需要支持更多的访问来源,需要配置放行IP列表,通过,分隔。

# 日志请求白名单
llog.ip.allows=127.0.0.1,198.0.0.1

2. 数据库配置

LLog基于lucy-jpa构建数据库访问,需要完成对应数据库配置。

# MySQL
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=demo
spring.datasource.password=
# JPA 允许结构替换
spring.main.allow-bean-definition-overriding=true
# 最小空闲连接数量
spring.datasource.hikari.minimum-idle=5
# 最长生命周期
spring.datasource.hikari.max-lifetime=120000
# 空闲连接存活最大时间,默认600000(10分钟)
spring.datasource.hikari.idle-timeout=50000
# 连接池最大连接数,默认是10
spring.datasource.hikari.maximum-pool-size=20
# 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
# 连接测试查询
spring.datasource.hikari.connection-test-query=SELECT 1
# jpa 配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.database=MYSQL
#自动将驼峰命名转换为小写和下划线 userId -> user_id
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
#不加这句则默认为myisam引擎
spring.jpa.database-platform= org.hibernate.dialect.MySQL5InnoDBDialect

3. 鉴权方案配置

LLog会记录用户ID和请求IP。如果需要获取到用户ID,则需要完成对鉴权服务的配置,拓展实现AuthService中的isLogingetUid接口,或者直接引入lucy-rbac等实现方案。

推荐自定义实现

@Slf4j
@Service
@AllArgsConstructor
public class DemoAuthServiceImpl implements AuthService {
    @Override
    public Boolean isLogin() {
        // return StpUtil.isLogin(); // 使用 SaToken 
        return AuthService.super.isLogin();
    }

    @Override
    public String getUid() {
        // return StpUtil.getLoginIdAsString(); // 使用 SaToken 
        return null;
    }
}

使用

@ApiLog

通过自定义注解标记需要记录请求日志的接口,实现对接口请求的自动记录。

@ApiLog("追踪测试")
@GetMapping("trace")
@ApiOperation(value = "追踪ID测试")
public ResponseDTO<Object> testTrace(){
    //
}

@ApiLog注解可配置项如下:

参数 类型 备注
value string 默认为请求所属模块名词
module string value 别名
ignoreResponse int 记录数据是否忽略响应结果,1为是,0为否
ignoreRequest int 记录数据是否忽略请求参数,1为是,0为否

管理面板

通过访问项目部署地址,进入日志查看管理页面。

http://localhost:8080/dashboard.html

支持多种条件的日志检索方式。

功能截图

1. 异常堆栈

2. 请求 & 响应数据

鼠标悬浮即可查看

3. 条件查询

条件组合查询

例如此处就是状态+接口方法组合查询,支持全部条件的组合。

关键词匹配检索

请求来源和请求参数都支持模糊查询匹配,支持条件查询与模糊查询组合使用

更新日志

0.0.8

  • [特性] 更新了lucy-spring-boot-starter 版本依赖
  • [新增] 支持了按照请求参数模糊匹配的功能
  • [修复] 修复了重置页码不变化的bug

更多...

技术支持

kindear@foxmail.com

From:https://www.cnblogs.com/masterchd/p/18405784
本文地址: http://shuzixingkong.net/article/1887
0评论
提交 加载更多评论
其他文章 18 Python如何操作文件?
本篇是 Python 系列教程第 18 篇,更多内容敬请访问我的 Python 合集 1 打开文件 通常使用内置的 open(文件路径, 模式, encoding=&quot;utf-8&quot;)函数。 文件路径:可以是相对路径或绝对路径。 模式:(可选)决定了文件打开后如何处理文件。 enco
用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」
在开始介绍上周热门开源项目之前,要插播一条开源新闻:Nginx 已正式迁移至 GitHub。 近日,Nginx 官方宣布将 Nginx 开源项目,从 Mercurial 迁移至 GitHub 代码托管平台,并开始接受 PR 形式的贡献、Issues 问题反馈和功能请求等,GitHub 上的 Ngin
用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」 用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」 用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」
军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些
大家好,我是欧阳。今年刚好是欧阳三十而立之年,虽然没有立起来。这篇文章来聊聊我从一名军工厂电气工程师到某知名互联网公司程序员,这期间我吃饭的家伙都有哪些。 军工厂期间 欧阳大学读的是“电气工程及其自动化专业”,毕业后进入了老家的一个军工厂,成为了一名电气工程师。军工厂的位置是在一个镇上,和“繁华”这
军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些 军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些 军工厂电气工程师到知名互联网公司程序员,我吃饭的家伙有哪些
喜欢干净简洁音乐播放器的朋友看过来
大家好,我是晓凡。 不少程序员小伙伴都喜欢边听音乐边敲代码,尤其在一个嘈杂的环境中,一个好的想法、好的思路可能就因为一瞬间的干扰就没了。 这时,如果耳机一戴上,听着音乐能更好的集中注意力;遇到bug也能临危不乱,想出更好的解决办法; 网易云音乐,算是一个相对简洁、有趣的播放器了。 不过近些年,各种花
喜欢干净简洁音乐播放器的朋友看过来 喜欢干净简洁音乐播放器的朋友看过来 喜欢干净简洁音乐播放器的朋友看过来
.NET 8 微软免费开源的 Blazor UI 组件库
前言 .NET 8 的发布,微软推出了官方免费且开源的 Blazor UI 组件库 —— Fluent UI Blazor。 组件库提供了Web应用程序所需的工具,确保应用程序能够与 Microsoft 产品保持一致的外观和感觉。Fluent UI Blazor 不仅包含了对微软官方 Fluent
.NET 8 微软免费开源的 Blazor UI 组件库 .NET 8 微软免费开源的 Blazor UI 组件库 .NET 8 微软免费开源的 Blazor UI 组件库
一文轻松搞定 tarjan 算法(二)(附带 tarjan 题单)
完结篇:tarjan 求割点、点双连通分量、割边(桥)(附 40 道很好的 tarjan 题目)。 上一篇(tarjan 求强连通分量,缩点,求边双) tarjan 求割点 还是求强联通分量的大致思路捏. 算法思路: 我们把图中的点分为两种: 每一个联通子图搜索开始的根节点 和 其他点。 判断是不是
一文轻松搞定 tarjan 算法(二)(附带 tarjan 题单)
Locust 进行分布式负载测试
什么是 Locust Locust 是一个开源的负载测试工具,用于测试网站和其他应用程序的性能。它通过编写 Python 脚本来定义虚拟用户的行为,模拟这些用户对目标系统发起请求。Locust 提供了一个直观的 Web 界面,允许用户实时监控测试进度和性能指标。 主要特性包括: Python 编写测
鸿蒙系统(HarmonyOS)全局弹窗实现
全局弹窗相对于自定义弹窗有以下优点: 封装更彻底,一行代码就能调用 跟组件耦合度低,只需要传入组件的UIContext对象,不需要跟自定义弹窗一样需要在组件内部实例化CustomDialogController对象 全局弹窗是鸿蒙在API 12增加的,PromptAction对象增加了openCus
鸿蒙系统(HarmonyOS)全局弹窗实现 鸿蒙系统(HarmonyOS)全局弹窗实现