Как запретить серверу gRPC в Python регистрировать многострочную обратную трассировкуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как запретить серверу gRPC в Python регистрировать многострочную обратную трассировку

Сообщение Anonymous »

Я создал сервер grpc, написанный на Python. Когда возникает ошибка, мне нужно вызвать исключение на сервере, эта функция в grpc/_servery.py завершается с ошибкой из-за возникшего исключения. Это заставляет программу печатать трассировки, которая просто использует функцию печати. Есть ли способ заставить эту функцию использовать jsonlogger, который используется для всех остальных журналов?
Из-за многострочных трассировок я получаю несколько строк журнала для одной и той же ошибки в datadog. Как исправить многострочные трассировки.
Пример кода сервера

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

class UnaryService(pb2_grpc.UnaryServicer):

def __init__(self, *args, **kwargs):
pass

def GetServerResponse(self, request, context):
message = request.message
raise Exception("error raised")
Я пробовал следующие подходы:
  • Нет возврата: Я пробовал установка кода состояния, сведений об ошибке в контексте gRPC и возврат None, когда вместо возникновения исключения возникает исключение. Это сработало в том смысле, что теперь трассировки не регистрируются, но у меня возникла проблема с трассировкой datadog. Запрос считался успешным, даже если он потерпел неудачу. Я также попытался добавить теги в текущий диапазон, но он все равно не был помечен как неудачный.
  • Исправление print_exc() >: Другим решением, которое я предложил, было исправление функции трассировки.print_exc(). Это тоже работает, но мне это решение не нравится, так как если что-то изменится в библиотеке трассировки или grpc, это может повлиять.
og_print_exc = трассировка.print_exc()

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

def patched_print_exc(*args, **kwargs):
tb = traceback.format_exc()
logger.error("error traceback: ", tb)

traceback.print_exc = patched_print_exc
Есть ли лучшие способы справиться с этим сценарием?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/778 ... -traceback
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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