veza/scripts/view_logs.sh
senke 17a04a6b2e feat: centraliser tous les logs dans /var/log/veza avec rotation
- Configure LOG_DIR=/var/log/veza pour tous les services
- Ajoute scripts de gestion des logs (setup, view, rotate)
- Configure volume Docker partagé pour les logs
- Logs organisés par service avec fichiers séparés pour les erreurs
- Rotation automatique : 100MB, 10 backups, 30 jours, compression gzip
- Documentation dans LOGGING.md et ENV_CONFIG.md

Services configurés:
- Backend API: backend-api.log, redis.log, db.log, rabbitmq.log
- Chat Server: chat-server.log (à configurer)
- Stream Server: stream-server.log (à configurer)

Le backend API a déjà toute l'infrastructure de logging en place.
Les serveurs chat et stream utiliseront LOG_DIR depuis l'environnement.
2026-01-04 01:44:23 +01:00

151 lines
4.2 KiB
Bash
Executable file

#!/bin/bash
# Script pour visualiser les logs Veza
# Usage: bash scripts/view_logs.sh [service] [options]
#
# Services disponibles:
# backend-api, redis, db, rabbitmq, chat-server, stream-server, all
#
# Options:
# -f, --follow Suivre les logs en temps réel (tail -f)
# -e, --errors Afficher uniquement les erreurs
# -n NUM Nombre de lignes à afficher (défaut: 50)
# -g PATTERN Filtrer par pattern (grep)
set -e
LOG_DIR="/var/log/veza"
SERVICE="${1:-all}"
FOLLOW=false
ERRORS_ONLY=false
LINES=50
GREP_PATTERN=""
# Parser les options
shift || true
while [[ $# -gt 0 ]]; do
case $1 in
-f|--follow)
FOLLOW=true
shift
;;
-e|--errors)
ERRORS_ONLY=true
shift
;;
-n)
LINES="$2"
shift 2
;;
-g)
GREP_PATTERN="$2"
shift 2
;;
*)
echo "Option inconnue: $1"
exit 1
;;
esac
done
# Fonction pour afficher les logs d'un fichier
view_log() {
local file="$1"
local label="$2"
if [ ! -f "$file" ]; then
echo "⚠️ Fichier $file non trouvé"
return
fi
echo "📋 === $label ==="
if [ "$FOLLOW" = true ]; then
if [ -n "$GREP_PATTERN" ]; then
tail -f "$file" | grep --color=auto "$GREP_PATTERN"
else
tail -f "$file"
fi
else
if [ -n "$GREP_PATTERN" ]; then
tail -n "$LINES" "$file" | grep --color=auto "$GREP_PATTERN"
else
tail -n "$LINES" "$file"
fi
fi
echo ""
}
# Déterminer quels fichiers afficher
case $SERVICE in
backend-api)
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/backend-api-error.log" "Backend API - Erreurs"
else
view_log "$LOG_DIR/backend-api.log" "Backend API - Tous les logs"
fi
;;
redis)
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/redis-error.log" "Redis - Erreurs"
else
view_log "$LOG_DIR/redis.log" "Redis - Tous les logs"
fi
;;
db)
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/db-error.log" "Database - Erreurs"
else
view_log "$LOG_DIR/db.log" "Database - Tous les logs"
fi
;;
rabbitmq)
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/rabbitmq-error.log" "RabbitMQ - Erreurs"
else
view_log "$LOG_DIR/rabbitmq.log" "RabbitMQ - Tous les logs"
fi
;;
chat-server)
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/chat-server-error.log" "Chat Server - Erreurs"
else
view_log "$LOG_DIR/chat-server.log" "Chat Server - Tous les logs"
fi
;;
stream-server)
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/stream-server-error.log" "Stream Server - Erreurs"
else
view_log "$LOG_DIR/stream-server.log" "Stream Server - Tous les logs"
fi
;;
all)
echo "📊 === Vue d'ensemble des logs Veza ==="
echo ""
if [ "$ERRORS_ONLY" = true ]; then
view_log "$LOG_DIR/backend-api-error.log" "Backend API - Erreurs"
view_log "$LOG_DIR/redis-error.log" "Redis - Erreurs"
view_log "$LOG_DIR/db-error.log" "Database - Erreurs"
view_log "$LOG_DIR/rabbitmq-error.log" "RabbitMQ - Erreurs"
view_log "$LOG_DIR/chat-server-error.log" "Chat Server - Erreurs"
view_log "$LOG_DIR/stream-server-error.log" "Stream Server - Erreurs"
else
echo "💡 Astuce: Utilisez -e pour voir uniquement les erreurs"
echo ""
ls -lh "$LOG_DIR"/*.log 2>/dev/null || echo "Aucun fichier de log trouvé"
fi
;;
*)
echo "❌ Service inconnu: $SERVICE"
echo ""
echo "Services disponibles:"
echo " - backend-api"
echo " - redis"
echo " - db"
echo " - rabbitmq"
echo " - chat-server"
echo " - stream-server"
echo " - all (vue d'ensemble)"
exit 1
;;
esac