gershwin.pages.dev

Como filtrar linhas de log por data específica usando script?

Filtrar linhas de log por data específica pode ser uma tarefa tediosa e propensa a erros quando feita manualmente. Com um script automatizado, você pode extrair exatamente o que precisa em segundos, eliminando a necessidade de vasculhar arquivos enormes linha por linha. Este método é rápido, preciso e repetível para qualquer arquivo de log.

Pré-requisitos

Passo 1: Preparar o ambiente

Antes de executar o script, certifique-se de que o arquivo de log está no mesmo diretório do script ou forneça o caminho completo para o arquivo. Abra o terminal e navegue até a pasta onde o script será salvo.

cd /caminho/para/sua/pasta

Passo 2: Criar o script Python

Crie um arquivo chamado filtrar_log.py e adicione o seguinte código. Este script lê um arquivo de log, filtra as linhas que contêm uma data específica e salva o resultado em um novo arquivo.

import sys

def filtrar_log_por_data(arquivo_log, data_especifica, arquivo_saida):
    try:
        with open(arquivo_log, 'r') as arquivo:
            linhas = arquivo.readlines()

        linhas_filtradas = [linha for linha in linhas if data_especifica in linha]

        with open(arquivo_saida, 'w') as arquivo:
            arquivo.writelines(linhas_filtradas)

        print(f"Filtrado com sucesso! {len(linhas_filtradas)} linhas encontradas.")

    except FileNotFoundError:
        print(f"Erro: O arquivo {arquivo_log} não foi encontrado.")
    except Exception as e:
        print(f"Erro inesperado: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 4:
        print("Uso: python filtrar_log.py   ")
        sys.exit(1)

    arquivo_log = sys.argv[1]
    data_especifica = sys.argv[2]
    arquivo_saida = sys.argv[3]

    filtrar_log_por_data(arquivo_log, data_especifica, arquivo_saida)

Passo 3: Executar o script

Para executar o script, use o comando abaixo, substituindo os parâmetros pelo nome do seu arquivo de log, a data que deseja filtrar e o nome do arquivo de saída. A data deve estar no mesmo formato que aparece no log (ex: "2023-10-15" ou "15/10/2023").

python filtrar_log.py arquivo_log.txt "2023-10-15" log_filtrado.txt

Exemplo Prático

Veja como o script funciona com um exemplo de entrada e saída esperada.

Arquivo de Log (entrada) Script Filtrando por "2023-10-15" Arquivo de Saída (resultado)
2023-10-14 10:00:00 - INFO - Sistema iniciado
2023-10-15 11:30:00 - ERROR - Falha na conexão
2023-10-15 12:00:00 - INFO - Usuário logado
2023-10-16 09:00:00 - WARNING - Memória baixa
Comando: python filtrar_log.py log.txt "2023-10-15" saida.txt
2023-10-15 11:30:00 - ERROR - Falha na conexão
2023-10-15 12:00:00 - INFO - Usuário logado

Conclusão

Com este script, você automatiza o processo de filtragem de logs por data específica, economizando tempo e evitando erros manuais. Basta ajustar a data e o nome do arquivo, e o script faz todo o trabalho pesado por você.