我使用Logback编写了一个自定义记录器,并且需要获取Websocket会话ID来附加日志消息。但是我不知道如何像下面这样获得http会话ID:
import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
public class WebSocketSessionConverter extends ClassicConverter {
@Override
public String convert(ILoggingEvent event) {
//this returns null
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
return attrs.getSessionId();
}
return "NO_STOMP_SESSION";
}
}
顺便说一句,是否像HTTP请求一样在Websocket的一个线程中从头到尾处理一条消息?(我认为应该...)是否有使用ThreadLocal的机制?或获取会话ID的方法? 谢谢。