package org.skywalking.apm.toolkit.activation.trace;
import org.skywalking.apm.agent.core.context.ContextManager;
import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInvokeContext;
import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodInvokeContext;
import org.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodsAroundInterceptor;
import org.skywalking.apm.logging.ILog;
import org.skywalking.apm.logging.LogManager;
/**
* Created by xin on 2016/12/15.
*/
public class TraceContextInterceptor implements StaticMethodsAroundInterceptor {
private ILog logger = LogManager.getLogger(TraceContextInterceptor.class);
@Override
public void beforeMethod(StaticMethodInvokeContext interceptorContext, MethodInterceptResult result) {
}
@Override
public Object afterMethod(StaticMethodInvokeContext interceptorContext, Object ret) {
return ContextManager.getGlobalTraceId();
}
@Override
public void handleMethodException(Throwable t, MethodInvokeContext interceptorContext) {
logger.error("Failed to get trace Id.", t);
}
}