попробуй, кроме и регистратора Python - PullRequest
1 голос
/ 22 марта 2019

У меня есть этот метод в моем коде, но я хочу передать ошибку в свой журнал и стереть печать (e).

def get_used(self, obj):
    try:
        return '<a href="%(url)s">%(name)s</a>' % {'url': reverse('org', kwargs={'organization': obj.organization.slug}), 'name': obj.organization.name}
    except Exception as e:
        print(e)
        return ''

Я нашел эту документацию о регистрации вызовов https://docs.djangoproject.com/en/2.1/topics/logging/ но на самом деле я не уверен, что реализация именно таким образом.

def get_used(self, obj):
    try:
        return '<a href="%(url)s">%(name)s</a>' % {'url': reverse('org', kwargs={'organization': obj.organization.slug}), 'name': obj.organization.name}
    except Exception as e:
        logger = logging.getLogger(__name__)
        logger.exception(e)
        return ''

или другая идея, которая, на мой взгляд, это создание logger = logging.getLogger (__ name __) как глобальная переменная.

Я немного запутался, как создавать регистраторы, и мне нужна помощь, чтобы написать это.

Спасибо !!

1 Ответ

0 голосов
/ 22 марта 2019

Эта строка из вашего кода дает вам ссылку на регистратор:

logger = logging.getLogger(__name__)

Теперь вы можете регистрировать сообщения в соответствии с серьезностью с различными функциями, например:

logger.debug("Very detailed information")
logger.info("Rather important information")
logger.warning("A warning")

Является ли этопечатается или нет, зависит от вашего уровня логирования и от того, какие у вас обработчики.Загляните в официальный учебник

В вашем случае это, вероятно, должно работать:

    except Exception as e:
        logger = logging.getLogger(__name__)
        logger.warning(e)
        return ''
...