@Plugin(name ="TraceIdConverter", category ="Converter")@ConverterKeys({"traceId"})publicclassTraceIdConverterextendsLogEventPatternConverter{/**
* Constructs an instance of LoggingEventPatternConverter.
*
* @param name name of converter.
* @param style CSS style for output.
*/protectedTraceIdConverter(String name, String style){super(name, style);}publicstatic TraceIdConverter newInstance(String[] options){returnnewTraceIdConverter("traceId","traceId");}@Overridepublicvoidformat(LogEvent event, StringBuilder toAppendTo){
Log4j2OutputAppender.append(toAppendTo);}}
publicclassLog4j2OutputAppender{/**
* As default, append "TID: N/A" to the output message,
* if sky-walking agent in active mode, append the real traceId in the recent Context, if existed, or empty String.
*
* @param toAppendTo origin output message.
*/publicstaticvoidappend(StringBuilder toAppendTo){
toAppendTo.append("TID: N/A");}}