Журналирование и обработка ошибок в ботах
Создавайте устойчивых простых ботов, добавляя структурированное журналирование и корректную обработку ошибок, чтобы сбои были заметны и устранимы.
«Журналирование и обработка ошибок в ботах» — бесплатный урок Web Scraping & Bots на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Web Scraping & Bots, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Web Scraping & Bots содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Why Bots Need Logs
A bot runs unattended, often on a schedule. When something breaks, you are not watching. Logging leaves a trail so you can diagnose what happened after the fact.
Without logs, a silent failure can go unnoticed for days.
print() Is Not Logging
Beginners use print(), but it has no levels, no timestamps, and no easy way to redirect to a file. Python's logging module solves all of this.
print('something happened') # no level, no time, hard to manageSetting Up Logging
Configure logging once at startup. Set a format with a timestamp and a level, and choose where output goes.
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s'
)
log = logging.getLogger('bot')
log.info('Bot started')Log Levels
Levels let you control verbosity:
DEBUGdetailed tracing.INFOnormal progress.WARNINGsomething odd but recoverable.ERRORan operation failed.CRITICALthe bot cannot continue.
log.debug('fetched 12 rows')
log.warning('retrying after timeout')
log.error('login failed')Logging to a File
For unattended bots, write logs to a file so you can review them later. A rotating handler caps file size.
from logging.handlers import RotatingFileHandler
handler = RotatingFileHandler('bot.log', maxBytes=1_000_000, backupCount=3)
log.addHandler(handler)Catching Exceptions
Wrap risky operations in try/except so one failure does not crash the whole run. Log the error with context.
try:
submit_form(data)
except Exception as e:
log.error('form submission failed: %s', e)Logging Full Tracebacks
Use log.exception inside an except block to capture the full stack trace, which is invaluable for debugging.
try:
risky()
except Exception:
log.exception('unexpected error in risky()')Retrying Transient Failures
Network blips are common. Catch them and retry a few times before giving up, logging each attempt.
for attempt in range(3):
try:
fetch()
break
except ConnectionError:
log.warning('attempt %d failed, retrying', attempt + 1)
else:
log.error('all attempts failed')Failing Loudly
Silent failures are dangerous. For critical errors, escalate: send an alert email, write a marker file, or exit with a non-zero code so a scheduler notices.
import sys
if not data:
log.critical('no data scraped, aborting')
sys.exit(1)Clean Shutdown
Always release resources even on error. A finally block (or context managers) guarantees browsers close and files flush regardless of what went wrong.
try:
run_bot()
finally:
driver.quit()
log.info('bot finished')Structured Logging Context
Attach context to each log line, such as the current URL or item id, so when you scan a long log you immediately know which record a message refers to.
log.info('scraped item %s from %s', item_id, url)Quick Check
Test your understanding of bot logging and error handling.
Recap
You learned to make simple bots resilient: use the logging module instead of print, choose appropriate levels, log to rotating files, catch and log exceptions with tracebacks, retry transient errors, fail loudly on critical issues, and shut down cleanly.
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Журналирование и обработка ошибок в ботах» бесплатный?
Да — полный текст урока «Журналирование и обработка ошибок в ботах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Web Scraping & Bots, подпишись на CoddyKit PRO. Курс Web Scraping & Bots содержит 4 уроков всего.
Чему я научусь в уроке «Журналирование и обработка ошибок в ботах»?
Создавайте устойчивых простых ботов, добавляя структурированное журналирование и корректную обработку ошибок, чтобы сбои были заметны и устранимы. Ты практикуешь Web Scraping & Bots с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Web Scraping & Bots?
Предыдущий опыт не требуется. Web Scraping & Bots на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Журналирование и обработка ошибок в ботах»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Web Scraping & Bots?
Да. Каждый урок Web Scraping & Bots включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение целей бота
- Автоматизация отправки простых форм
- Планирование базовых задач
- Журналирование и обработка ошибок в ботах