项目介绍
本项目为了解决中小型企业级java项目调用流程的性能追踪问题,提供便捷快速的调用流程追踪日志记录,同时可以记录每个调用函数的耗时
固然目前有比如Zipkin,Drapper这些分布式追踪系统,能够全面的追踪分布式系统的调用链路,但是对于中小型的企业项目搭建及维护成本过高。
地址:https://github.com/husthuke/trace4j
Qucik Start
在使需要开启追踪日志的项目中引用trace4j-core工程。
<dependency>
<groupId>com.hooke</groupId>
<artifactId>trace4j-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
为需要进行日志追踪的方法增加如下注解
@Trace(processName = "test",startStep = true)
public void doSomeThing1(){
System.out.println("doSomeThing1");
}
结合spring aspect机制定义业务aop
<!--Aspect的方式实现trace监测-->
<bean id="traceAspect" class="com.hooke.trace.aop.spring.TraceAspect">
</bean>
<aop:config>
<aop:pointcut id="tracePointcutAspect"
expression="execution(* com.hooke.biz..*(..))"/>
<aop:aspect id="traceSpringAspect" ref="traceAspect">
<aop:around
pointcut-ref="tracePointcutAspect"
method="trace"/>
</aop:aspect>
</aop:config>
追踪日志格式
"threadId:" + 调用线程ID +
" triceId:" + 追踪ID +
" sessionId:" + 会话ID +
" ProcessName:" + 追踪流程名称 +
" ProcessStep:" + 追踪路程步骤 +
" Joinpoint:" + aop连接点信息 +
" argsJson:" + 方法入参信息 +
" returnJson:" + 方法返回信息 +
" cost:"+ 调用耗时 + " ms!"
运行结果示例: