Как сопоставить ошибки REST с записями журнала с помощью slf4j?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сопоставить ошибки REST с записями журнала с помощью slf4j?

Сообщение Anonymous »

Во внутреннем коде, когда метод конечной точки REST создает исключение, конечная точка должна возвращать полезные данные с соответствующим статусом ошибки http, например 500. Также рекомендуется, чтобы полезные данные ответа REST не включали само исключение, поскольку это может привести к утечке информации о безопасности. Регистрация исключения также является хорошей практикой для последующей отладки.
Мы хотели бы вернуть полезную нагрузку из вызова REST, которую позже можно будет сопоставить с записью журнала. Один из способов сделать это — использовать следующий шаблон:

Код: Выделить всё

 // next line would be nice, but doesn't work
long timestampOfLogEntry = LOGGER.error("Unexpected error in REST call", exception);
// return a REST payload with the timestamp - so we can lookup the error later
return status(INTERNAL_SERVER_ERROR, new response("Unexpected error", timestampOfLogEntry))
Однако методы LOGGER имеют возвращаемые типы «void» вместо возврата метки времени или чего-либо еще, что можно было бы использовать для идентификации записи журнала позже.
Одним из решений было бы записать нашу собственную временную метку и включить ее в журнал, но это было бы избыточно с временной меткой, которую система логгера создает автоматически. Мы также могли бы создать какое-то случайное число для включения как в журнал, так и в возвращаемую полезную нагрузку, но это добавит шума в журнал.
Это кажется проблемой, универсальной для всех реализаций конечных точек REST. , по крайней мере, те, кто использует Java и общие платформы ведения журналов. Есть ли общее решение, которое я пропустил?

Подробнее здесь: https://stackoverflow.com/questions/784 ... sing-slf4j
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»