Комментарии 9
logger.info(f'{x}__{y}') выражения выполняются сразу, а logger.info('%s__%s', x, y) в момент форматирования лога. И если у тебя много debug логов, то выражение "f" не будет дороже?
successful лог в `try: except` лучше логировать в секции else.
Зачем `except ZeroDivisionError as err:` если err не используется
Чем лучше любопытно? Дело вкуса, мне кажется
везде где вижу "удобное" форматирование log message исправляю на "шаблон отдельно, значения отдельно".
Изначально, мотивация была именно такая - зачем каждый раз перед вызовом делать то, что с какой-то вероятностью не потребуется. Но сейчас кто смотрит на эти копейки эффективности.
В какой-то момент, эта мотивация дополнилась тем, что протоколирование - это не всегда "строки текста". Сколько лет уже продвигается ELK и прочие технологии сбора/анализа/итд? Форматирование в человекочитаемую строку может быть вообще не потребуется, или это сделают где-то там, в каком-нибудь ELK, причем не только для debug, но вообще для всего.
Причем, сегодня про "такой поворот" может быть даже никто и не думает, а через год, вместо того, что бы в условно одном месте заменить log writer, будут устраивать ревизию всему коду.
Кажется тема не раскрыта.
Тут просто перечислено базовое api модуля logging.
Есть же ещё кастомные форматеры, хэндлеры, фильтры и патенты логгеров. Отдельная тема, то что происходит с сообщением и в каком формате от вызова функции logger.info() до момента его получения адресату
exception/stack trace доступен из самого logging, не нужны сторонние тулы.
Добавьте какие-то специфичные кейсы, например, как в каждое сообщение добавить имя хоста или функции, из которой логгер вызывается
Ну плиз, что вы хотите от перевода индийской статьи в корпоративном блоге?
Статей про логирование через библиотеку logging - сотни, в том числе и на хабре была точно не одна.. Если бы какие-то новые фичи появились - то я могу понять, но переписывать одно и то же - ну ок, напомнит кому-то из молодежи, наверное.
Давайте на забывать, что есть специалисты, которые ранее кодили на других языках и с питоном мало знакомы. Кто то только изучает питон в связи с новыми потребностями. И для таких людей статья очень даже интересная. Спасибо.
Логирование в Python: руководство разработчика