ramajo/logs-visualizer

Biblioteca de processamento de informações sobre logs para o ecosistema PHP

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/ramajo/logs-visualizer

0.1.0 2025-10-11 17:59 UTC

This package is auto-updated.

Last update: 2025-10-11 19:36:56 UTC


README

Biblioteca PHP para processamento e análise de logs, facilitando extração e manipulação de informações.

PHPStan PHP Version License

O que é

Biblioteca modular para processar arquivos de logs e disponibilizar informações de forma estruturada. Integração fácil com Monolog e outros formatos.

Objetivo: Acesso rápido aos logs sem SSH ou infraestrutura complexa.

Por quê?

Ferramentas como Grafana e ELK são robustas, mas demandam tempo de setup e infraestrutura. Esta biblioteca é plug-and-play para necessidades imediatas.

Ideal para:

  • Equipes pequenas
  • Ambientes de desenvolvimento
  • Projetos com prazos apertados
  • Quando infraestrutura pesada não é viável

Funcionalidades Implementadas

  • Leitura de arquivos de log através da classe FileReader.
  • Estruturação de logs no padrão Monolog.
  • Parseamento e transformação das informações em objetos estruturados (JSON-like) via MonologAdapter.
  • Coleções de entradas de log com suporte a iteração e contagem de registros (MonologEntryCollection).
  • Tratamento de exceções personalizadas, como LogFileNotFoundException.

Instalação

composer require joao-ramajo/logs-visualizer

Exemplo de uso

use Ramajo\Infra\Readers\FileReader;
use Ramajo\Infra\Adapters\MonologAdapter;

// 1. Instancia o leitor de arquivos de log
$reader = new FileReader();

// 2. Lê o conteúdo do arquivo de log
// Retorna um array onde cada elemento é uma linha do log
$content = $reader->read('storage/logs/laravel.log');

// 3. Instancia o adapter para logs Monolog
$adapter = new MonologAdapter();

// 4. Parseia as linhas lidas e retorna uma coleção de objetos MonologEntry
$collection = $adapter->parse($content);

// 5. Itera sobre a coleção e exibe nível e mensagem de cada log
foreach ($collection as $entry) {
    echo $entry->getLevel() . ': ' . $entry->getMessage() . PHP_EOL;
}

O FileReader lê o arquivo de log e retorna um array de linhas. O MonologAdapter converte essas linhas em objetos MonologEntry, encapsulados em uma coleção MonologEntryCollection, permitindo iteração e manipulação fácil dos registros.

Scripts para desenvolvimento

composer test      # Rodar testes
composer stan      # Análise estática

Também há o script de quality mas seu uso deve estar restrito a execução do CI.

Status

Fase: MVP funcional

Implementado:

  • ✅ Leitura de arquivos
  • ✅ Parser Monolog
  • ✅ Entities e Collections
  • ✅ Testes unitários

Próximos passos:

  • Leitura performática de arquivos para evitar estouro de mémoria
  • Permitir a busca dos X logs mais recentes para análise e debug
  • Múltiplos formatos (Apache, Nginx, Laravel)
  • Filtros e buscas
  • API REST
  • Interface web

Licença

MIT

Autor

João Ramajo - @joao-ramajo