TLog轻量级日志追踪使用(非微服务)

      之前发过一个博文介绍了TLog在微服务环境下的使用,当时还误解觉得在非微服务情况下使用这个日志框架没有意义。然当加入组织,细细研读使用文档,才发现自己的无知。作者说的微服务下能显示上下游请求名称、ip等,他说的这个微服务是宽泛的。

一、依赖引入

      不想包太大,其实可以值引入自己需要的模块,我一般都是图省事的。

<!-- TLog引入支持  -->
<dependency>
    <groupId>com.yomahub</groupId>
    <artifactId>tlog-all-spring-boot-starter</artifactId>
    <version>1.3.4</version>
</dependency>

二、logback配置

      所有encoder节点,修改实现类,比如:
原:

<encoder>
	<Pattern>${app.name} >> %date{yyyy-MM-dd HH:mm:ss.SSS}\t[%thread]\t%-5level\t%logger\t-\t%X{KEY_WORDS}%m%nPattern>
	<charset class="java.nio.charset.Charset">utf-8charset>
encoder>

修改为:

<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
	<Pattern>${app.name} >> %date{yyyy-MM-dd HH:mm:ss.SSS}\t[%thread]\t%-5level\t%logger\t-\t%X{KEY_WORDS}%m%nPattern>
	<charset class="java.nio.charset.Charset">utf-8charset>
encoder>

三、application配置

#项目名称
spring.application.name=ITSS
#TLog轻量级日志追踪
tlog.pattern=[$preApp][$preIp][$spanId][$traceId]

四、注意

1、上下游日志框架统一TLog
2、都是SpringBoot项目(其他应该也是可以的,只是项目名称估计要设成spring.application.name,原代码里key是固定的)
3、上下游接口交互协议Http
      这个目前是支持HttpClient、OkHttp的,HuTool封装的HttpUtil还没有支持,这点跟2个项目在码云上都提了issue,在2边的群组织里联系上了作者,提个建议。
issue:
HuTool
TLog轻量级日志追踪使用(非微服务)_第1张图片
Tlog
TLog轻量级日志追踪使用(非微服务)_第2张图片
      话说大神们也很自信,组织里跟作者的对话。
      Tlog作者说要是HuTool不支持就强上,霸气。
TLog轻量级日志追踪使用(非微服务)_第3张图片
      其实作者也是认识HuTool的小磊的,单聊的内容我就不好公开了。
HuTool
TLog轻量级日志追踪使用(非微服务)_第4张图片

五、效果

TLog轻量级日志追踪使用(非微服务)_第5张图片
      我这里是用post请求的A项目,A项目里用OkHttp请求B项目。可能有人担心这个请求码重复,这个是用的雪花算法,目前还没有听说有这样的bug。本来这个周五就可以分享给大家的,但是那天项目上线有点问题,当天没有找到原因。
      今天上午跟媳妇带娃出去玩了,下午回来了接着定位原因,最后真他妈坑,现网是用jenkins + 默认maven编译 + pipi发布。jenkins没有报错、但是启动报的错却是自动任务方面的,莫名其妙。最后合并代码一阶段一阶段试验(本机打包发现网是好的),发现现网用的阿里云的镜像,我的TLog是用的周四才发布的1.3.4最新版。我怀疑是jar没有下载好,或者是阿里云上没有,这个我就没有去深究了,让运维明天看看(其实是我没找到jenkins自带的maven的配置文件),希望能帮到大家。

你可能感兴趣的:(架构,工具,轻量级日志追踪,Tlog日志追踪,Tlog日志框架增强)