Я пишу собственный регистратор, используя Logback, и мне нужно получить идентификатор сеанса Websocket для добавления сообщений журнала. Однако я не знаю, как получить его, как идентификатор сеанса http, который я получаю, как показано ниже:
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";
}
}
Кстати, обрабатывает ли сообщение от начала до конца в одном потоке в Websocket, какHTTP-запрос? (я думаю, что это должно ...), если так, есть ли механизм, использующий ThreadLocal или что-то для получения идентификатора сеанса? Спасибо.