Проблема: я ненавижу читать однотонные логи, но не знаю Python
Каждый день я смотрю на терминал. Черный текст на белом фоне. Сотни строк. Ошибки, предупреждения, информационные сообщения - все одного цвета. Я трачу минуты, чтобы найти нужную строчку. Иногда пропускаю критическую ошибку, потому что она сливается с общим потоком.
Раньше я думал: "Нужно написать скрипт для подсветки логов". Потом вспоминал, что последний раз писал код в школе, 15 лет назад. И откладывал идею до следующего раза.
Решение: заставить ИИ работать как личного разработчика
В 2026 году ситуация изменилась. Современные LLM вроде Claude 3.7 Sonnet или GPT-5 могут не просто генерировать код, но и понимать контекст, исправлять ошибки, предлагать улучшения. Главное - правильно сформулировать задачу.
Моя цель: создать утилиту командной строки, которая:
- Читает логи из файла или stdin
- Автоматически определяет типы сообщений (ERROR, WARN, INFO, DEBUG)
- Раскрашивает каждую категорию в свой цвет
- Работает в реальном времени (tail -f)
- Имеет простые настройки цветовой схемы
Звучит сложно? Для человека без опыта - да. Для современного ИИ - стандартная задача.
1 Шаг первый: выбираем оружие
В 2026 году выбор огромен. Я остановился на Claude Code (последняя версия) по трем причинам:
- Бесплатный доступ через Anthropic API с лимитом в 100 запросов в день
- Отличное понимание контекста и способность "держать в голове" длинные диалоги
- Специализация на генерации кода (не зря же в названии Code)
Важный нюанс: не используйте общие модели вроде ChatGPT для сложных технических задач. Они хороши для объяснения концепций, но для генерации рабочего кода нужны специализированные инструменты. Как я писал в статье про неосознанный вайб-кодинг, слепая вера в любую модель приводит к плохим результатам.
2 Шаг второй: правильный промпт - 80% успеха
Вот промпт, который сработал у меня с первого раза:
Создай утилиту командной строки на Python для цветной подсветки логов.
Требования:
1. Читает логи из файла (передается как аргумент) или из stdin
2. Автоматически определяет строки с ERROR, WARN/WARNING, INFO, DEBUG
3. Раскрашивает: ERROR - красный, WARN - желтый, INFO - зеленый, DEBUG - синий
4. Поддерживает флаг --follow для отслеживания изменений файла (как tail -f)
5. Имеет флаг --colors для кастомной цветовой схемы в формате "error:red,warn:yellow"
6. Выводит только раскрашенный текст, ничего лишнего
7. Работает в Linux/macOS терминале
8. Код должен быть простым, без сложных зависимостей
Начни с основного скрипта, потом добавь README с примерами использования.
Что здесь важно:
- Конкретные технические требования (флаги, форматы)
- Ограничения (простой код, минимум зависимостей)
- Ясный ожидаемый результат
- Контекст использования (Linux/macOS терминал)
3 Шаг третий: тестируем и исправляем
Claude сгенерировал 120 строк кода. Я скопировал их в файл colorlog.py и попробовал запустить:
python3 colorlog.py --help
Работало. Попробовал с тестовым логом:
echo -e "INFO: Starting service\nERROR: Connection failed\nWARN: Retrying..." | python3 colorlog.py
Цвета появились, но... ERROR и WARN определялись некорректно. Проблема: модель использовала простые регулярные выражения, которые ловили слова внутри строк ("feature", "warningly").
Вот как выглядел ошибочный код:
# ПЛОХОЙ ПРИМЕР (так делать не надо)
def colorize_line(line):
if "ERROR" in line:
return f"\033[91m{line}\033[0m" # Красный
if "WARN" in line or "WARNING" in line:
return f"\033[93m{line}\033[0m" # Желтый
# ...
Проблема: "WARNING" в середине слова тоже триггерило подсветку. Нужно было искать только в начале строки или после определенных разделителей.
Я написал Claude:
Код работает, но есть проблема с определением типов логов.
Сейчас "WARNING" внутри слова тоже подсвечивается желтым.
Измени регулярные выражения так, чтобы искать только:
- В начале строки (после возможных временных меток)
- После пробелов/скобок
- Но не внутри других слов
Пример: "[15:30] WARNING: message" - должно подсветиться
Пример: "This feature is warningly slow" - НЕ должно подсветиться
Claude исправил код, использовав более сложные регулярные выражения. Это важный момент: когда вы не знаете, как решить техническую проблему, опишите ее максимально конкретно. Не говорите "исправь баг", а объясните, в чем именно проблема и приведите примеры.
4 Шаг четвертый: добавляем фичи через диалог
Рабочий скрипт готов. Но я хочу больше:
- Подсветку номеров строк
- Фильтрацию по типу лога (только ERROR, например)
- Поддержку разных форматов логов (JSON, syslog)
Вместо того чтобы просить все сразу, я добавляю фичи постепенно. Это ключевой принцип атомарного мышления в AI-разработке: одна фича - один запрос - одно изменение.
Запрос для добавления фильтрации:
Добавь флаг --filter=TYPE, где TYPE может быть error, warn, info, debug или all.
Если указан --filter=error, выводи только строки с ERROR.
Если --filter=warn, выводи ERROR и WARN (более серьезные уровни тоже показываются).
По умолчанию --filter=all (все сообщения).
Такой подход работает лучше, чем "сделай все и сразу". Модель фокусируется на одной задаче, меньше ошибается, вы лучше контролируете процесс.
Готовый инструмент: что получилось в итоге
Через 3 часа работы с Claude у меня был полноценный colorizer логов. Вот основные команды:
# Базовая подсветка
python3 colorlog.py app.log
# Режим tail -f
python3 colorlog.py --follow app.log
# Только ошибки
python3 colorlog.py --filter=error app.log
# Кастомные цвета
python3 colorlog.py --colors="error:magenta,warn:cyan" app.log
# Чтение из pipe
docker logs my_container | python3 colorlog.py --filter=warn
Инструмент реально экономит мне 10-15 минут каждый день. И самое главное - я его создал сам, без единой строчки кода, написанной вручную.
| Что делал я | Что делал ИИ | Время |
|---|---|---|
| Формулировал требования | Генерировал код на Python | 30 минут |
| Тестировал и находил баги | Исправлял регулярные выражения | 45 минут |
| Просил дополнительные фичи | Добавлял фильтрацию и кастомные цвета | 60 минут |
| Писал документацию | Генерировал README с примерами | 45 минут |
Ошибки, которые я совершил (чтобы вы их не повторили)
Не все было гладко. Вот главные косяки:
Ошибка 1: Слишком расплывчатые требования в первом промпте. Первая версия скрипта не обрабатывала временные метки перед уровнем лога. Пришлось переделывать.
Ошибка 2: Попытка добавить все фичи сразу. Когда я попросил "добавь фильтрацию, подсветку номеров строк и поддержку JSON", Claude сгенерировал запутанный код, который не работал. Пришлось откатиться и добавлять по одной фиче.
Ошибка 3: Не тестировать промежуточные версии. После каждого изменения нужно запускать скрипт и проверять, что он хотя бы запускается. Один раз я накопил 5 изменений, и когда что-то сломалось, не мог понять, какое именно изменение было проблемным.
FAQ: ответы на частые вопросы
А если я вообще не знаю, как формулировать технические требования?
Начните с описания проблемы на человеческом языке. "Мне нужно, чтобы логи были цветными. Ошибки - красные, предупреждения - желтые. Хочу видеть только ошибки, если нужно. Хочу, чтобы работало с файлами и с выводом других программ."
Потом попросите ИИ: "Преврати эти требования в техническую спецификацию для утилиты командной строки." Модель сама предложит флаги, форматы, варианты использования.
Какую модель лучше использовать в 2026 году?
Для генерации кода:
- Claude Code - лучший баланс качества и доступности
- GPT-5 Coder (если есть доступ) - немного лучше понимает контекст
- Qwen Coder 480B - отличная open-source альтернатива, как в статье про Ralph Wiggum prompt
- JanusCoder - если нужна работа с визуальным контекстом (скриншотами интерфейсов)
Что делать, если код не работает после генерации?
Копируйте ошибку и отправляйте ИИ. "При запуске скрипта получаю ошибку: ImportError: no module named 'colorama'. Как исправить?"
Или: "Скрипт запускается, но не раскрашивает строки с ERROR. Вот пример лога: [2026-02-04 15:30] ERROR: Connection timeout. Что не так?"
Чем конкретнее описание проблемы, тем точнее будет решение.
Что дальше? От colorizer к полноценной платформе
Создав первый инструмент, вы поймете главное: программирование - это не про синтаксис, а про решение проблем. Синтаксис может сгенерировать ИИ.
Мой следующий проект - аналог Infer, но для анализа логов. Утилита, которая не просто раскрашивает, но и находит паттерны, предсказывает ошибки, предлагает решения.
Совет напоследок: не пытайтесь стать программистом. Станьте архитектором, который использует ИИ как строительную бригаду. Вы проектируете, ИИ строит. Вы тестируете, ИИ исправляет. Это и есть будущее разработки - и оно уже наступило.
Попробуйте. Возьмите задачу, которая вас бесит каждый день. Опишите ее ИИ. Получите работающий инструмент. Вы удивитесь, насколько это просто - когда у вас есть правильный "сотрудник".