Ir para conteúdo
Propaganda

Tracer log - Procura erros nos logs e gera um novo log com os erros detalhados


Posts Recomendados

Este script visa automatizar a leitura e análise de arquivos de log do TFS, identificando erros. Ele foi projetado para ajudar você a encontrar os erros nos logs do TFS, fornecendo uma visão detalhada de cada erro encontrado, incluindo rastreamento de pilha e contexto adicional.

Instale o Python Em uma pasta, adicione todos os ".log" do TFS e execute o script (python log_análise_script.py)
 

import os
import re

def suggest_fix(error_message):
    if "Invalid argument" in error_message:
        return "Verifique se os parâmetros passados estão corretos e no formato esperado."
    elif "CreatureScript Interface" in error_message:
        return "Verifique os scripts das criaturas e valide se estão de acordo com a documentação."
    elif "Action Interface" in error_message:
        return "Valide as ações e eventos registrados para evitar conflitos ou configurações incorretas."
    elif "OTBM Loader" in error_message:
        return "Verifique a integridade dos arquivos de mapa ou tente carregar um backup."
    elif "attempt to index field" in error_message:
        return "Verifique se a variável referenciada está corretamente inicializada ou se não há valores nulos inesperados."
    elif "stack traceback" in error_message or "Traceback" in error_message:
        return "Rastreie a origem do erro no código e trate exceções de forma adequada."
    else:
        return "Erro desconhecido. Verifique a documentação ou revise o código."

def analyze_logs(log_folder):
    error_pattern = re.compile(r"(ERROR|FATAL|Exception|Traceback|stack traceback)", re.IGNORECASE)
    context_lines = 5
    results = []
    all_errors = []
    
    for root, dirs, files in os.walk(log_folder):
        for file in files:
            if file.endswith(".log"):
                file_path = os.path.join(root, file)
                with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
                    lines = f.readlines()
                    for i, line in enumerate(lines):
                        if error_pattern.search(line):
                            start = max(i - 1, 0)
                            end = min(i + context_lines, len(lines))
                            error_context = lines[start:end]
                            error_message = ''.join(error_context).strip()
                            suggestion = suggest_fix(error_message)
                            results.append((file, error_message, suggestion))
                            all_errors.append(f"Arquivo: {file}\nErro: {error_message}\nSugestão: {suggestion}\n{'-'*50}")
    
    return results, all_errors

def generate_output(log_folder):
    log_analysis_results, all_errors = analyze_logs(log_folder)
    
    output_file = os.path.join(log_folder, "log_error_report.txt")
    with open(output_file, 'w', encoding='utf-8') as f:
        for error in all_errors:
            f.write(error + "\n")
    
    print(f"Relatório gerado: {output_file}")

log_folder = os.path.dirname(os.path.abspath(__file__))
generate_output(log_folder)


Após rodar esse script, será gerado um arquivo chamado: log_error_report.txt mostrando os erros separados, para uma leitura mais dinâmica.

  • Like 2
  • Thanks 2
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

×
  • Criar Novo...