Como seguir vários arquivos de log gerados dinamicamente em uma visualização combinada

1

Eu tenho um diretório com arquivos de log, com novos arquivos adicionados de tempos em tempos. Eu quero 'tailf-los' em uma visão combinada (ver todas as linhas de todos os arquivos mesclados juntos)

Eu vi o lnav recomendado algumas vezes para isso e, com base na descrição do recurso, ele deve suportar essas opções - mas a documentação não está clara o suficiente.

especificamente - ao executar o lnav para rastrear um diretório, posso alternar arquivos de log usando as teclas f \ F, mas não obter uma visão combinada

    
por Ophir Yoktan 22.06.2017 / 07:03

1 resposta

0

De fato, não vejo nenhuma boa solução para sua necessidade usando lnav . O melhor que posso pensar é usar tail -f em todos os arquivos de log:

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

Outra solução usando logtail que tem algumas desvantagens, mas lida com o caso em que novos arquivos de log são adicionados de tempos em tempos:

#!/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
    
por 22.06.2017 / 11:19

Tags