Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logviewer

Viewer graphique GTK4 (Rust) des logs de la stack dockr : JSON Monolog/ELK, PHP error_log, Apache (error/access), syslog, et texte brut en filet de secours.

Portage Rust + gtk4-rs de l'application Python GTK3 logviewer, avec réécriture idiomatique de la couche UI en GTK4 (les API GTK3 dépréciées ou supprimées — Gtk.Menu, button-press-event, FileChooserDialog.run(), Statusbar — sont remplacées par leurs équivalents GTK4).

Fonctionnalités

  • Parsing multi-format avec détection automatique (JSON, PHP error_log, Apache error/access, syslog, générique).
  • Recherche texte/regex avec surlignage, filtres par niveau, channel, fichier source, plage de dates (widgets + raccourcis).
  • Timeline (Cairo) de la densité des événements dans le temps.
  • Détail d'un log colorisé selon son formatage (niveau, labels, sections de stacktrace/contexte/extra).
  • Marque-pages, groupement, retour à la ligne, export JSON/CSV.
  • Suivi en direct (tail -f) avec notifications.
  • Sidebar dossier, Ctrl+clic sur fichier:ligne pour ouvrir dans l'éditeur.
  • Lecture transparente des fichiers .gz.

Installation

Rustup installé en user-local (~/.cargo, pas de sudo) :

. "$HOME/.cargo/env"

Headers de dev GTK4 (installation sudo, une fois) :

sudo apt install -y pkg-config libgtk-4-dev

Utilisation

. "$HOME/.cargo/env"

# lancer sur un ou plusieurs fichiers/motifs (globs, ~, .gz supportés)
cargo run -- '~/projets/dockr/data/php/logs/eu-interfaces/json_*.log'

# sans argument -> sélecteur de fichiers
cargo run

# build optimisé
cargo build --release

Un fichier logviewer.desktop est fourni pour l'intégration bureau (icône, menu d'applications) ; voir CLAUDE.md pour l'installer localement.

Tests

# cœur logique (parsers, dates, matcher) — offline, sans GTK
cargo test --no-default-features

# lint / format
cargo clippy --all-targets
cargo fmt

Architecture

Voir CLAUDE.md pour le détail de l'architecture (séparation cœur logique/UI, modules, correspondances GTK3 → GTK4) et les invariants de portage.

About

reader logs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages