目前有需求记录用户的每一次请求,并且需要存数据库,有什么开源项目推荐吗
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
kyuuseiryuu 2022-12-13 12:16:40 +08:00 via iPhone
Spring 啊🥲
|
7
xiang0818 2022-12-13 12:32:50 +08:00 2
/**
* 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
ltxlouis 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
janus77 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
|