#ИИ_и_Автоматизация Логирование автоматизаций на Python: как не проснуться в холодном поту
"Вчера всё работало, а сегодня база не обновилась, отчёты не улетели, времени разбираться нет…" Узнаёте себя? Признаюсь честно: и у меня были ночи тревоги из-за невидимых ошибок в автоматизациях. Но есть способ, как максимально упростить себе жизнь, чтобы разбираться, что произошло ночью, было просто — это осознанно подходить к логированию ваших Python-автоматизаций.
Давайте честно: большинство кодов, которые я встречал (и писал!) пару лет назад, логируют всё по принципу "вывести ошибку в консоль" или вообще никак. Любая не закрытая кавычка — и скрипт тихо падает где-то в глубине сервера. А утром приходится гадать по косвенным признакам: что сработало, а что нет? Это не дело.
Мой подход: лог — не просто файл. Лог — это ваша история происходящего, и ещё — страховка на случай форс-мажора. Как сделать так, чтобы ночные процессы были как на ладони?
Вот реальные методы и приёмы, которые работают даже при минимальном опыте программирования:
1. Используйте logging из коробки. Вместо привычного print, подключите модуль logging. Сразу: logging.basicConfig(filename='log.txt', level=logging.INFO, format='%(asctime)s %(levelname)s:%(message)s') — и теперь в log.txt у вас будут и время, и уровень, и сообщение. Этот файл прочитать проще и самому, и ИИ.
2. Чётко фиксируйте ключевые этапы. Пишите в лог не только ошибки, но и стадии "Начало работы", "Подключился к базе", "Записал отчёт", "Скрипт завершён". По таким меткам утром будет понятно, докуда дошёл сценарий.
3. Ловите исключения try/except. Оберните критические блоки в try/except и пишите в лог не только саму ошибку (exc_info=True), но и связанный с ней этап. Например, "Ошибка отправки Email: …" — так вы точно поймёте, в чём затык.
4. Добавляйте свою "метку успешности". Пусть в конце работы скрипт всегда пишет "SUCCESS". Если этой строки нет — ищите проблему.
5. Сохраняйте логи хотя бы пару дней. Скрипт отработал ночью, потом лог не затёрся следующей же ночью — и вы не потеряете историю за пару дней.
Минимум кода, максимум понимания. Самое важное: по логам вы сможете легко объяснить себе (и другим), что реально произошло ночью, вытащить конкретные моменты без лишних догадок.
Я с помощью таких логов не раз находил неожиданные "узкие места" или, наоборот, доказывал, что всё прошлось гладко, хотя коллегам казалось, что был сбой.
Сначала может показаться, что это лишняя работа. Но это тот фундамент автоматизации, который позволяет спокойно засыпать, а утром быстро разобраться в любой ситуации.
А как вы логируете свои рабочие Python-скрипты? Какие грабли и лайфхаки были у вас? Делитесь опытом — уверен, что все только выиграют!