AopLog 2.4 已经发布,此版本更新内容包括:
Enhancements:
- 优化了
LogData.step
内容追加逻辑 - 新增了
RestTemplateProxy
,可对RestTemplate
请求内容信息进行回调处理。 - AopLog异步线程池可进行调整,只需要配置一个名为的
logCollectorAsyncExecutor
线程池的bean。 - 不再解析真实的本机ip地址,提高性能。
AopLog是基于SpringAop和ThreadLocal实现的一个对请求方法内容日志的拦截与处理的日志工具包。
设计目的和场景 :
- 使用Spring Aop拦截参数日志目前大部分做法都基本上大同小异,不想日后每个项目工程都写一份这样的Aop拦截处理日志的代码,甚至代码侵入。
- 重要的业务接口埋点,我想知道一些相对重要的请求方法的请求参数,响应参数,请求头,以及内部耗时,方法是成功还是失败等等信息。发生错误时我也不知道执行到哪一步发生了异常,是不是某个参数导致出的逻辑问题。
- 普通的log.info或warn信息没有所属请求的上下关系,并不方便查看和分析。
- 正式环境中,我并不想打印太多无意义的info日志(有些只是为了排查问题打印的日志,程序正常运行时其实毫无意义),只希望在发生异常时记录日志或者只希望每次请求只记录一条次关键的请求信息。
- 日志的收集,我希望将这些请求的日志记录下来,记录的实现方式我自己决定,比如正常的日志打印,常见的日志写入数据库,日志写入到文件,日志入队列等等。
- 整个日志的记录完全不干扰正常请求方法的流程,日志的收集处理异步化,完全不影响正常请求方法的性能与响应。
- 只需要通过
@AopLog
注解决定是否记录。