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).
- 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:lignepour ouvrir dans l'éditeur. - Lecture transparente des fichiers
.gz.
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. "$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 --releaseUn fichier logviewer.desktop est fourni pour l'intégration bureau (icône,
menu d'applications) ; voir CLAUDE.md pour l'installer localement.
# cœur logique (parsers, dates, matcher) — offline, sans GTK
cargo test --no-default-features
# lint / format
cargo clippy --all-targets
cargo fmtVoir CLAUDE.md pour le détail de l'architecture (séparation cœur
logique/UI, modules, correspondances GTK3 → GTK4) et les invariants de
portage.