定位BUG之日志【巧妙的日志设计】

来源:互联网 发布:西安java程序员招聘 编辑:程序博客网 时间:2024/05/21 16:03


定位生产问题,查看日志是基本技能,必须牢牢掌握
tail -f xxx.log


grep -r 'traceID' *.log   不会这些命令的,可以考虑放弃JAVA。




当框架里代码层次特别深时,定位一个问题,相关日志显示的很凌乱,没有一个关联的关键词。
测试环境,感觉不出来。当上了生产环境,日志海量的打印。找一个数据的完整流程日志往往向大海捞针。


这时如果你把打印日志的方法定制,加上一个traceID 唯一的数据ID,可以UUID生成,也可以用日期加随机数,反正能保证唯一就行。


入参对象xxx【traceID20170708112233abc】
异常信息xxx【traceID20170708112233abc】
SQLxxxxxx【traceID20170708112233abc】
出参对象xxx【traceID20170708112233abc】
可能分布在不同 XXX.log文件中


通过20170708112233abc,grep -r '20170708112233abc' *.log
一下子就把数据相关的日志都搜索出来了。
是不是,很方便。




一般传统项目,traceID应该非常好设计。
对于微服务的架构,少者十多个maven工程,多者三四十个maven工程,工程之间怎么传递traceID,后续在分解
提示,利用一个上下文对象,贯穿整个服务。
原创粉丝点击