DEV Community

Cover image for 🚀 Как сделать дебаг-логи понятными, полезными и легко читаемыми
Nubami SQReder
Nubami SQReder

Posted on

🚀 Как сделать дебаг-логи понятными, полезными и легко читаемыми

Отладка через логгирование — это классика. Независимо от уровня опыта, почти каждый разработчик в какой-то момент пишет console.log("здесь"), чтобы понять, что происходит в коде.

Но если просто закидывать код логами без системы, они быстро превращаются в бесполезную простыню, в которой сложно что-то найти.

🔍 Основные проблемы стандартного логирования:
1️⃣ Логи трудно сканировать глазами, всё сливается в монотонный текст.

2️⃣ Поиск по console.log помогает, но без контекста всё равно сложно.

3️⃣ Простые теги ([INFO], [DEBUG]) не спасают — их тоже надо читать.

👉 Как сделать дебаг-логи понятными? Использовать цвета, структуру и эмоджи.


❌ Как обычно пишут логи (и почему это боль)

🔹 1. Логирование цифрами (чтобы просто отслеживать последовательность)

console.log(111);
console.log(222);
console.log(333);
Enter fullscreen mode Exit fullscreen mode

🔴 Минус: пока вспомнишь, что означает 222, уже забудешь, зачем писал 111.


🔹 2. «Эмоциональные» логи (чтобы проще искать)

console.log("WTF, почему оно null?");
Enter fullscreen mode Exit fullscreen mode

🔴 Минус: легко забыть удалить перед коммитом. Дальше объясняй тимлиду, почему в логах FATAL ERROR: oh shit.


🔹 3. Логирование переменной без выделения маркера

console.log(userData, "marker");
Enter fullscreen mode Exit fullscreen mode

🔴 Минус: если логов много, сложно быстро найти этот конкретный.


✅ Как улучшить логи: добавляем визуальные маркеры

Наш мозг быстрее воспринимает цвет и иконки, чем текст. Решение — использовать эмоджи в логах.

🔹 Пример моих любимых эмоджи для логов:

  • 🐊 (крокодил) — хорошо видно, радует глаз.
  • 🐓 (петушок) — если нужно вывести две точки отладки.
  • 💣 (бомба) — потенциальное место бага.
  • 🧪 (колба) — тестовые данные, промежуточные вычисления.

👉 Пример лога с эмоджи:

console.log("🐊 Fetching user data...");
console.log("🧪 User ID:", userId);
console.log("💣 Unexpected response format!", response);
Enter fullscreen mode Exit fullscreen mode

✅ Теперь важные места видно сразу, не нужно читать весь текст.


🤖 Как AI помогает логировать лучше

Писать такие логи вручную — это долго.

Поэтому я использую AI для генерации детализированных логов.

💡 Команда, которая упрощает жизнь:

add detailed debug logs with emoji. use console.group where applicable

Что делает AI:

Добавляет осмысленные логи, а не просто console.log("here").

Структурирует вывод через console.group → можно сворачивать и разворачивать группы логов в DevTools.

Логирует промежуточные состояния, а не только финальный результат.


📌 Пример: ДО и ПОСЛЕ AI

❌ До (нет логов, максимально лаконичный код)

export const flow: FlowFn = (...fns: Array<PipeFunction<unknown, unknown>>): PipeFunction<unknown, unknown> => {
    return (value) => fns.reduce((acc, fn) => fn(acc), value);
};
Enter fullscreen mode Exit fullscreen mode

✅ После (логика + эмоджи + console.group)

export const flow: FlowFn = (...fns: Array<PipeFunction<unknown, unknown>>): PipeFunction<unknown, unknown> => {
    console.group('🌊 Flow Function');
    console.log('📥 Received functions:', fns.length);

    return (value) => {
        console.group('🔄 Flow Execution');
        console.log('🚀 Initial value:', value);

        const result = fns.reduce((acc, fn, index) => {
            console.log(`🔹 Step ${index + 1}:`);
            console.log('  ⮕ Input:', acc);
            const output = fn(acc);
            console.log('  ⬅ Output:', output);
            return output;
        }, value);

        console.log('🏁 Final result:', result);
        console.groupEnd();
        console.groupEnd();
        return result;
    };
};
Enter fullscreen mode Exit fullscreen mode

Enhanced debug logs output

🔥 Теперь:

  • Логи сгруппированы, их легко свернуть в DevTools.
  • Важные точки отмечены эмоджи, и их сразу видно.
  • Легче найти ошибку, потому что console.group структурирует вывод.

📌 Где уместны такие логи, а где — нет?

Подходят для отладки (debug-режим)

  • Когда нужно быстро находить ключевые моменты в логах.
  • Если логов много, и нужен удобный способ фильтрации.

🚫 Не подходят для продакшн-логов

  • В боевых логах важна строгость формата.
  • Автоматические системы (типа Logstash, ELK) могут не поддерживать эмоджи.
  • Логи должны читаться и без визуальных элементов.

👉 Решение:

  • Debug-режим → используем эмоджи и console.group.
  • Продакшн → строгие info/warn/error логи без визуального шума.

🚀 Вывод: как сделать логи полезными?

Использовать эмоджи → цветные метки помогают быстро находить нужные места.

Группировать через console.group → удобнее анализировать потоки данных.

Автоматизировать с AI → AI помогает расставить логи там, где они действительно полезны.

🔥 Попробуйте! А какие эмоджи вы бы использовали в своих логах? 😎


🚀 Если тебе тоже хочется глубже понять, как AI может помочь в разработке – подписывайся, разбираться будем вместе! 💻 https://t.me/sqr_dev_moments

Top comments (0)

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay