
目前有需求记录用户的每一次请求,并且需要存数据库,有什么开源项目推荐吗
1 me221 2022-12-13 12:01:08 +08:00 AOP ? |
2 aoboco 2022-12-13 12:12:09 +08:00 直接写到文件。然后 fluent 收集 |
3 karott7 2022-12-13 12:12:50 +08:00 via iPhone 这还存数据库? aop 记录到日志看不就好了 |
6 Chemist 2022-12-13 12:16:40 +08:00 via iPhone Spring 啊 |
7 xiang0818 2022-12-13 12:32:50 +08:00 /** * Http 请求日志记录 */ public class HttpFilter extends OncePerRequestFilter { |
8 bk201 2022-12-13 12:38:13 +08:00 最好是写入文件后,自己抓取后写入数据库。比如 2L 的 fluent 收集 |
9 ricky077 2022-12-13 12:58:50 +08:00 自定义拦截器不行吗? |
10 xlouis 2022-12-13 13:01:19 +08:00 [logbook]( https://github.com/zalando/logbook) 可以看看这个 |
11 cslive 2022-12-13 13:41:07 +08:00 log4j 日志保存到数据库 |
12 thetbw 2022-12-13 13:43:04 +08:00 这要啥框架,拦截器记录到日志不就行了。如果需要查询,再把日志推到那些查询工具里 |
13 wizzer 2022-12-13 13:45:29 +08:00 |
14 rb6221 2022-12-13 13:45:41 +08:00 直接找个 log 库,然后 log 自己写进文件或者数据库就完事了呗 |
15 blankmiss 2022-12-13 13:54:04 +08:00 怎么什么都用框架 你每一次请求直接拦截就行了 在拦截的时候做处理操作 不管你是存数据库还是存缓存 |
16 huajia2005 2022-12-13 13:54:12 +08:00 自定义注解,然后 aop 异步写入数据库,一般项目这种就可以了,大项目就另说了 |
17 pannanxu 2022-12-13 14:01:41 +08:00 流量高就日志收集,不然就直接 Filter 直接入库 |
18 Vkery 2022-12-13 14:51:49 +08:00 只是记录请求时间 请求地址 响应时长之类的 解析 accsee_log 就行了 如果需要对应的入参 返回值 用户信息之类的 大概就需要用 aop 或者 filter 里做处理了 |
19 zoyua 2022-12-13 15:33:50 +08:00 这个不需要参考啥开源项目吧,直接拦截存库里就行吧,不过我们业务目前是存 sls 上的 |
20 otakustay 2022-12-13 15:55:41 +08:00 前面架个 nginx 吐日志,再用 fluentd 或者 filebeat 的收集起来入库 |
21 imaple 2022-12-13 15:58:01 +08:00 AOP 异步写日志+ELK |
22 imaple 2022-12-13 15:58:18 +08:00 感觉是在做审计相关? |
23 meeop 2022-12-13 15:58:38 +08:00 咋啥都要开源框架啊,自己写一个功能不行吗 |
24 Goooooos 2022-12-13 16:03:26 +08:00 几年前流行的 ELK |
25 witcherhope 2022-12-13 16:06:29 +08:00 说实话几分钟就能写出来的东西 |
26 w292614191 2022-12-13 16:10:02 +08:00 @Goooooos #24 现在流行啥,spirngcloud 用啥收集比较好。 |
27 MX123 2022-12-13 16:13:47 +08:00 可以问一下 ChatGPT: “是的,Java 后端开发中有许多用于记录请求的开源框架。例如,您可以使用 Apache Log4j 来记录每一次请求。Log4j 是一个强大的日志记录框架,提供了丰富的日志记录功能,并具有高度可配置性。您也可以使用 Slf4j ,它是一个日志抽象层,可以与各种日志实现(如 Log4j ,Logback 等)配合使用。此外,还有许多其他的日志记录框架,您可以根据项目的需要选择适合的框架。” |
28 amlee 2022-12-13 16:15:16 +08:00 这种需求任何框架都能满足吧,根本不必要有所谓单独的开箱即用的框架来实现 |
29 wxw752 2022-12-13 16:15:20 +08:00 先写到本地,filebeat 异步存到 ELK |
33 git00ll 2022-12-13 16:27:38 +08:00 filter |
34 litchinn 2022-12-13 17:32:29 +08:00 1. logback 有 DBAppender 2. 如果需要自定义日志内容请参考[美团的这篇文章]( https://tech.meituan.com/2021/09/16/operational-logbook.html) 3. 如果有条件建议上 loki ,有 docker-plugin ,集成方便。 |
35 loshine1992 2022-12-13 17:43:07 +08:00 AOP + LOG 库啊。。 |
36 ecric 2022-12-13 18:18:00 +08:00 你只说记录请求没有说记录之后干嘛用啊 |
37 fengpan567 2022-12-13 18:37:27 +08:00 加点钱,直接 aop+elk |
38 xuanbg 2022-12-13 21:53:32 +08:00 AOP 把请求数据输出到日志就好了吧?我是在网关上做的,docker 容器输出的日志到 fluentd ,再转发到 ES 存储起来。基本上开箱即用。百度一下 EFK 就行了。 |
39 Nnq 2022-12-14 01:53:04 +08:00 或者你可以用 opentelemetry |
40 lux182 2022-12-14 09:41:52 +08:00 探针 比如 skywalking |
41 LeegoYih 2022-12-14 13:31:50 +08:00 |
42 qinxi 2022-12-14 21:33:47 +08:00 用 spring 的话 spring 自带的 CommonsRequestLoggingFilter 就行, 不用自己处理流复制. 只不过没有入库的 不过请求日志都有了. 怎么写都可以, log4j2 直通队列, 或者写文件走 efk |
44 cco 2023-01-30 16:32:26 +08:00 pinpoint |