package org.skywalking.apm.toolkit.activation.log.log4j.v2.x;
import net.bytebuddy.description.method.MethodDescription;
import net.bytebuddy.matcher.ElementMatcher;
import org.skywalking.apm.agent.core.plugin.interceptor.StaticMethodsInterceptPoint;
import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassStaticMethodsEnhancePluginDefine;
import static net.bytebuddy.matcher.ElementMatchers.named;
/**
* Active the toolkit class "org.skywalking.apm.toolkit.log.logback.v2.x.LogbackPatternConverter".
* Should not dependency or import any class in "skywalking-toolkit-logback-2.x" module.
* Activation's classloader is diff from "org.skywalking.apm.toolkit.log.logback.v2.x.LogbackPatternConverter",
* using direct will trigger classloader issue.
*
* @author wusheng
*/
public class Log4j2OutputAppenderActivation extends ClassStaticMethodsEnhancePluginDefine {
/**
* @return the target class, which needs active.
*/
@Override
protected String enhanceClassName() {
return "org.skywalking.apm.toolkit.log.log4j.v2.x.Log4j2OutputAppender";
}
/**
* @return the collection of {@link StaticMethodsInterceptPoint}, represent the intercepted methods and their
* interceptors.
*/
@Override
protected StaticMethodsInterceptPoint[] getStaticMethodsInterceptPoints() {
return new StaticMethodsInterceptPoint[] {
new StaticMethodsInterceptPoint() {
@Override
public ElementMatcher<MethodDescription> getMethodsMatcher() {
return named("append");
}
@Override
public String getMethodsInterceptor() {
return "org.skywalking.apm.toolkit.activation.log.log4j.v2.x.PrintTraceIdInterceptor";
}
}
};
}
}