Este projeto é uma ferramenta de linha de comando desenvolvida em Java para processar arquivos de logs de eventos de sistema. O desafio original, proposto em C++, foi adaptado para Java para demonstrar habilidades em Manipulação de Arquivos (I/O), Coleções (Collections) e Orientação a Objetos.
O programa recebe um arquivo de texto via argumento de terminal com logs estruturados. O objetivo é realizar o parsing desses dados, agrupar as informações por processo e gerar relatórios individuais formatados.
Requisitos atendidos:
- Parsing Dinâmico: Leitura e interpretação de logs no formato
TIMESTAMP | EVENT | UID | PID | PROCESS_NAME. - Segregação de Arquivos: Geração de um arquivo
.txtindividual para cada processo encontrado (ex:youtube.txt,chrome.txt,tiktok.txt). - Agrupamento e Contagem: Identificação de eventos únicos por processo e contagem total de suas ocorrências.
- Ordenação: Garantia de que o conteúdo dos arquivos de saída esteja ordenado por tipos de eventos.
- Transformação de Dados: O timestamp da primeira ocorrência de cada evento é extraído e movido para a última coluna do arquivo gerado.
TIMESTAMP | EVENT | UID | PID | PROCESS_NAM'E
1090019010 | 122 | 10300 | 879 | tiktok
1090019030 | 332 | 10331 | 97 | youtube
1090059034 | 332 | 10331 | 97 | youtube
1090079022 | 265 | 10331 | 97 | youtube
EVENT | UID | PID | PROCESS_NAME | COUNTER | FIRST TIMESTAMP
265 | 10331 | 97 | youtube | 1 | 1090079022
332 | 10331 | 97 | youtube | 2 | 1090019030
EVENT | UID | PID | PROCESS_NAME | COUNTER | FIRST TIMESTAMP
122 | 10300 | 879 | youtube | 1 | 1090019010
git clone https://github.com/arthur-dms/SysLog-Parser-Java.gitjavac Main.javajava Main input/log_1k_linhas.txt