340 читали · 2 года назад
Логгирование с модулем logging, настройка через конфиг файл. Лог-сообщения в Telegram.
Это статья возникла из моей компиляции информации по работе модуля logging. Я кратко постараюсь описать логику работы с ним, настройку конфиг файла и приведу код обработчика для отправки лог-сообщения в Telegram без установки дополнительных библиотек. В первую очередь, сформулирую, для чего я использую логгирование. В процессе написания кода Это очень удобная замена принтам. logger.debug(f'сообщение {value=}') Когда модуль закончен, просто меняем в конфиге один параметр. И все - в консоли больше нет текщих уведомлений. Не надо ползать по всему модулю и убирать ненужные принты. А если нужно вернуться к отладке этого модуля, снова замена всего-лишь одного параметра в конфиге...
06:44
1,0×
00:00/06:44
366,5 тыс смотрели · 3 года назад
2 года назад
Про debug tools Прекрасно живу без debug режима IDE 99% времени. Условный print / console.log выручает почти всегда. Прям оч редко нужен именно debug, но когда нужен, то нужен по полной, честно говоря. Последнее, что вспоминается из debug и точки останова - python, либа requests. Приходит баг, что мы обрабатываем не весь 1Gb файл. Качаешь локально - реально не весь, пытаешься понять, что менял - по коду ничего. Тянем curl-ом - все ОК. Начали смотреть либы - обновляли общую нашу внутреннюю, в ней минорно (вроде минорно) обновлен requests. Почитали release notes - ничего особенного. Начали дебажить. Так как файлы могут быть большие, код читет буффером до перевода строки, парсит и отправляет через yield дальше в наш конвеер и читает из сети еще. Думали, что у нас происходит что-то, что закрывает поток или еще что-то в этом роде. Но нет - нашли место в коде request с последнего обновления, которое приносило баг. Пришлось откатить requests. Решали день или два - не помню точно. Без debug в ide, просмотра переменных в памяти питона, остановки рантайма и вызова внутренних методов requests я хз сколько решали бы. Поэтому: - не надо упарываться, а надо решать просто по возможности, если для вас это быстрее - debug tools знать надо - без них как без SQL 😉