EalenXie / aop-log

项目正式命名为aop-log,基于Spring AOP,ThreadLocal实现方法埋点信息收集与处理。
Apache License 2.0
116 stars 54 forks source link

怎样获取logData中的Header对象内容 #22

Closed yalongwan closed 1 year ago

yalongwan commented 2 years ago

请教一下,在collect里面怎样获取logData中的header内容,header类似是Object,请教一下怎样转换?如header中有自定义的字段,例如"test": "123",怎样获取"test"的值。另外,想获取header其他自定义字段的值,如何设置?

@Slf4j @Component public class AopLogCollector implements LogCollector { private ObjectMapper objectMapper = new ObjectMapper();

@Override
public void collect(LogData logData) {
    try {
        log.info(objectMapper.writeValueAsString(logData));
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }
}

}

EalenXie commented 2 years ago

@AopLog 注解,headers参数可以设置你任何想要获取的header信息,另外收集日志建议不要直接使用样例给的log.info(objectMapper.writeValueAsString(logData)),LogData 是一个复杂对象,可能存在不能被序列化为json的情况,这个需要自己根据实际使用来选择最优的收集处理

EalenXie commented 2 years ago

headeraop-log 2.5中 存的是一个Map<String, String> ,可以直接被转换成json,或者键值对信息保存