日志收集方案总结:微服务业务日志收集

方案一:通过日志组件来收集

这里是指通过logbacklog4j等日志组件来输出文件,然后再通过文件输出到logstashkibana等日志组件中,通过这些日志组件来进行可视化统计与分析,这里需要统一关键日志输出格式方便日后统计搜索。

优点

操作简单,收集方便

减少业务依赖

粒度细

缺点

依赖于logstashkibana

只能满足简单的日志操作,详细点或者个性化需求操作起来比较复杂

方案二:使用aop来拦截controller

拦截controller层,通过controller中的方法名是否包含insertupdatedelete等关键字来记录业务日志。

优点

操作简单,收集方便
缺点

只能记录简单日志

不同的人命名习惯不一样,日志可能不准确

方案三:使用注解来,进行稍微精准的业务日志记录

这个方案粒度可大可小,代码侵入性也比较小,可操作性比较强,如果需要获取参数信息或者返回值信息,可以通过注解配置获取到,可以集合fastjson中的jpath来获取参数值下面有几个伪代码供参考

优点

操作简单

较灵活,粒度可大可小

缺点

有代码侵入

个性化需求不满足

方案四:针对复杂场景或者审计需求手动记录,侵入性强

如果有些业务共用了方法,需要更小的粒度,或者需要记录业务数据变更记录,这时就只能选择侵入式较强的方式来记录日志了,直接在业务代码中记录日志,日志系统新贵 Loki,这个推荐看下。

方案五:记录sql日志

则可以使用mybatis拦截器来进行,如果没有使用mybatis,则可以做一个通用的preparestatement以及statement代理。

当然现在已经有很对监控组件可以满足这个需求,比如说jeagerjavamelodydruid等。

总结

一般情况下我们会采用多种方式来记录业务日志,这个都是根据具体需求来进行评估用哪几种方式可以更好的达到产品需求。

网友评论

0条评论

发表

网友评论

0条评论

发表

最新评论

推荐文章

彩龙

Copyright © 2008-2020 彩龙社区(https://www.clzg.cn) 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP