Как найти исключения в лог-файлах с помощью командной строки

«Как найти исключения в лог-файлах с помощью командной строки» — вопрос из категории Операционные системы, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для поиска исключений и ошибок в логах из командной строки чаще всего используется утилита grep.

Основные команды:

  1. Поиск по нескольким ключевым словам Используйте флаг -i для поиска без учета регистра и | в качестве оператора "ИЛИ".

    # Искать строки, содержащие 'exception', 'error' или 'traceback'
    grep -i "exception|error|traceback" /path/to/your/logfile.log
  2. Поиск с отображением контекста Флаги -A (after), -B (before) и -C (context) показывают строки вокруг найденного совпадения, что помогает понять причину ошибки.

    # Показать 5 строк до и 5 строк после слова 'Exception'
    grep -B 5 -A 5 "Exception" /path/to/your/logfile.log
  3. Рекурсивный поиск по директории Флаг -r (recursive) позволяет искать во всех файлах внутри указанной директории.

    # Найти 'Traceback' во всех файлах в /var/log/
    grep -r "Traceback" /var/log/
  4. Вывод с подсветкой и номерами строк Для удобства анализа полезно подсвечивать найденные совпадения и видеть номера строк.

    # Искать 'error' с подсветкой (`--color=auto`) и номерами строк (`-n`)
    grep --color=auto -n -i "error" /path/to/your/logfile.log

Для более сложного анализа, например, для извлечения полных стектрейсов, grep можно комбинировать с awk, sed или perl.