1

У меня есть каталог с файлами журналов, время от времени добавляются новые файлы. Я хочу использовать их в комбинированном виде (все строки всех файлов объединены)

Я видел, что lnav рекомендовал несколько раз для этого, и, основываясь на описании функции, он должен поддерживать эти опции - но документация недостаточно ясна.

в частности - при запуске lnav для отслеживания каталога я могу переключать файлы журнала с помощью клавиш f\F, но не могу получить комбинированное представление

2 ответа2

0

На самом деле, я не вижу хорошего решения для ваших нужд, используя lnav . Лучшее, что я могу придумать, это использовать tail -f во всех файлах журнала:

tail -f file_1.log ... file_n.log

Другое решение, использующее logtail которое имеет некоторые недостатки, но обрабатывает случай, когда время от времени добавляются новые файлы журнала:

#!/bin/bash

# Quietly initialize logtail offset files
for logfile in *log
do
    logtail $logfile
done > /dev/null


while :
do
    # wait a second for new logs
    sleep 1
    for logfile in *log
    do  
        # output new logs since last logtail run, prepend with log filename
        logtail $logfile | sed "s/^/$logfile: /"
    done
done
0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .