现在有多个接口,怎么能够给这些接口添加统一的请求日志记录功能,并且自动在有新增的接口时,也无感增加日志记录?
在网上搜索到的方法都是写一个装饰器,然后在接口函数上使用这个装饰器。这种方法没有满足无感的需求,如果写代码的时候忘记加装饰器的话,就没有日志记录了
现在有多个接口,怎么能够给这些接口添加统一的请求日志记录功能,并且自动在有新增的接口时,也无感增加日志记录?
在网上搜索到的方法都是写一个装饰器,然后在接口函数上使用这个装饰器。这种方法没有满足无感的需求,如果写代码的时候忘记加装饰器的话,就没有日志记录了
1
so1n Jun 6, 2019
中间件
|
2
ifoolish Jun 6, 2019
全部接口继承一个基类
|
3
lauix Jun 6, 2019
什么框架,flask 可以设置生命周期。其他框架也有的,自己查查文档。也可以自己写个 装饰器。
|
4
superbai OP |
5
binux Jun 6, 2019
不用框架就只能 monkey patch 了
|
7
polebug Jun 6, 2019
赞同楼上 写一个 metaclass 给所有成员函数加上这个装饰器
不过我不觉得直接给接口函数加装饰器有什么问题 |
8
lihongjie0209 Jun 6, 2019
没有拦截器?
|
9
flyingghost Jun 6, 2019
实在想无感,直接在 nginx 反代层做好了。
思维不要限制在 flask 之内嘛。 |
10
superbai OP @binux
@ipwx @polebug 感谢,我瞅瞅;接口加装饰器当然没问题,不过我觉得有点烦... @lihongjie0209 Java 的那个拦截器么?我也想问哈哈哈,看起来是没有的 @flyingghost 感谢,虽然一般没有这么做的,但也是个思路~ |
11
xchange Jun 6, 2019
所有 logger 都输出到 stderr,然后用 supervisor 把输出重定向到一个文件里
|
12
troywinter Jun 6, 2019
如果是接口的请求最好直接在网关层做,微服务里应该很好做,我不喜欢在服务自己的框架里做很多事情,keep it simple
|
13
chengxiao Jun 6, 2019 via iPhone
uwsgi 的日志不是记录的都有么?直接日子分析下不就好了?
|
15
linvaux Jun 9, 2019
emm.....我之前就是写了个装饰器,没想到什么好办法
|