项目上提到调用链,需要搜集某个请求的日志入ES库中;方便后台报错请求能及时看到异常信息,此处有一个重点功能,就是在代码中获取当前控制台生成的日志;
这里介绍一个采集日志的功能;
public class CallLogAppender extends Appenderbase{ protected static final Charset UTF_8 = Charset.forName("UTF-8"); protected Encoder encoder; public void start() { super.start(); } @Override protected void append(ILoggingEvent event) { //在这里获取event中的内容,控制台每输出一行日志这里调用一次,通过在这里能采集到当前请求的日志; } }
有了这个功能,那么可以做一些基于请求线程的调用链,可能采集入参、出参、header、IP、mac地址、用户ID、时间等信息,用于日志排查需要;



