Sobes.tech
Junior
99
questionbank

Как посмотреть саму ошибку и её контекст, включая 10 строк до и после ошибки?

Answer from AI

sobes.tech AI

# Пример использования grep с контекстом (-C)
# Ищет "error" в файле my_log.log и показывает 10 строк до (-B) и 10 строк после (-A)
grep -C 10 'error' my_log.log

или

# Пример использования sed для вывода определенных строк и их окрестностей
# Выводит строки вокруг строки с ошибкой, например, если ошибка на строке 100
# Здесь выводим строки с 90 по 110
sed -n '90,110p' my_log.log

или

# Пример использования Python для поиска ошибки и вывода контекста
def find_error_with_context(log_file, error_string, context_lines=10):
    with open(log_file, 'r') as f:
        lines = f.readlines()
    
    for i, line in enumerate(lines):
        if error_string in line:
            start_index = max(0, i - context_lines)
            end_index = min(len(lines) - 1, i + context_lines)
            for j in range(start_index, end_index + 1):
                print(f"{j+1}: {lines[j].strip()}")
            break # Можно убрать break, если нужно найти все вхождения

# Пример использования
find_error_with_context('my_log.log', 'ERROR')

Также можно использовать инструменты для централизованного логирования (ELK Stack, Splunk, Grafana Loki), которые предоставляют интерфейс для поиска и просмотра логов с контекстом. В них часто есть встроенные функции для отображения строк вокруг найденного события.