Skip to content

arthur-dms/SysLog-Parser-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LogParser-Java

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 Desafio

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 .txt individual 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.

Exemplo de Fluxo

Entrada (logs.txt):

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

Saida(youtube.txt):

EVENT | UID   | PID | PROCESS_NAME | COUNTER | FIRST TIMESTAMP
265   | 10331 | 97  | youtube      | 1       | 1090079022
332   | 10331 | 97  | youtube      | 2       | 1090019030

Saida(tiktok.txt):

EVENT | UID   | PID | PROCESS_NAME | COUNTER | FIRST TIMESTAMP
122   | 10300 | 879  | youtube      | 1       | 1090019010

Como Executar

Clone o repositório

git clone https://github.com/arthur-dms/SysLog-Parser-Java.git

Compile o projeto

javac Main.java

Execute passando o arquivo de log como argumento

java Main input/log_1k_linhas.txt

About

Um processador de logs de sistema desenvolvido em Java para extração, contagem e reestruturação de eventos de processos, focado em manipulação de arquivos e coleções eficientes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages