栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

TLog轻量级日志追踪

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TLog轻量级日志追踪


前段时间快马加鞭的把2个项目的需求弄完了,一个说是做了就验收,一个是支持期,要提高客户友好体验。完了后,这2天有点小闲暇,不能浪费,于是就逛逛论坛,发现了一个轻量级的日志增强框架TLog,觉得很nice,于是就试试,看香不香。

一、日志增强的场景

这个springBoot也可以用,但是感觉用处不大,真正有用处的场景我认为是springCloud里用,可以查看各层级日志,也就调用链路。这个我这里也是因为受限服务器资源、人力资源等,所以觉得这个于我最实在。

二、依赖引入

我这里是springCloud项目,且是maven的主从项目,所以我直接在主pom.xml全依赖引入。



    com.yomahub
    tlog-all-spring-boot-starter
    1.3.3

目前最新版本是1.3.3,有在线接入文档,地址:https://yomahub.com/tlog/docs/
文档写的还是非常不错的,逻辑清晰,节奏连贯。

三、日志配置文件修改



    
    
    

    

    
    
    
    
    
    


    
    
    
    
    
    

    
    
        
            ${CONSOLE_LOG_PATTERN}
            utf8
        
    

    
    
        
            
            ${app.name} >> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n
        
        ${log.path}/sys-info.log
        
            
            ${log.path}/sys-info-%d{yyyy-MM-dd}.log
            
            ${log.save.time.day}
        

    

    
    
        
            
            ${app.name} >> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n
        
        ${log.path}/sys-error.log
        
        
            
            ${log.path}/sys-error.%d{yyyy-MM-dd}.log
            
            ${log.save.time.day}
        

        
            
            ERROR
            
            ACCEPT
            
            DENY
        
    

    
    
    

    
    
        
        
    

里面我是按照接入文档修改的encoder的class为com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder,没错就是这么简单。
需要打印上层服务名称、ip,需要增加配置
tlog.pattern=[ p r e A p p ] [ preApp][ preApp][preIp][ s p a n I d ] [ spanId][ spanId][traceId]
集成文档有写,我这里有一个公用配置,每个模块都要引入,所以在公用配置增加:

#TLog轻量级日志追踪
tlog:
  pattern: '[$preApp][$preIp][$spanId][$traceId]'
四、启动类修改
启动类main方法外增加
//进行日志增强,自动判断日志框架
    static {
        AspectLogEnhance.enhance();
    }

PS:这里现在是不用增加的了,会自动适配的。真正做到了对代码0侵入。

五、特别注意

第一次试验集成是没有成功的,找到组织后问到作者,作者回复的。其实接入文档也有些,怪自己没有仔细看。
我的webMvcConfig类是继承的WebMvcConfigurationSupport类,改成实现WebMvcConfigurer后就正常了。

六、看效果

这里启动springcloud的几个服务,做验证。

如果日志增强启动成功,会有这样一句日志打印。
调用链路效果:
这里的请求是gateway(网关) -> web(接口层) -> service(服务层)
gateway网关层:

web接口层:

service服务层:

看到上层服务名称、ip了吧?这里贯穿的traceID、spanID也都看到了,可以看到一个请求从网关层到服务层,经过的各模块,traceID是一致的,这样追踪日志是不是超级简单,再也不用靠请求时间、双眼去盯着了…
作为受限不能引入zpikin、Sleuth链路追踪的,用这个也是一种选择。运维、日志分析也基本可以满足。另外TLog也是开放了一些api的,应该也是可以从log对象取出traceID、spanId做一些简单的业务埋点。就分享到这里,感兴趣的可以自行code研究。另外说下,组织有微信群,作者很友好。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号