#!/bin/bash # Script pour collecter les logs de tous les services # Usage: ./scripts/collect-logs.sh [service_name] set -e LOG_DIR="logs" TIMESTAMP=$(date +"%Y%m%d_%H%M%S") if [ $# -eq 1 ]; then # Collecter les logs d'un service spécifique SERVICE=$1 if [ -d "$LOG_DIR/$SERVICE" ]; then echo "📊 Collecte des logs pour $SERVICE..." docker logs "$SERVICE" > "$LOG_DIR/$SERVICE/${SERVICE}_${TIMESTAMP}.log" 2>&1 echo "✅ Logs collectés: $LOG_DIR/$SERVICE/${SERVICE}_${TIMESTAMP}.log" else echo "❌ Service $SERVICE non trouvé" exit 1 fi else # Collecter les logs de tous les services echo "📊 Collecte des logs de tous les services..." # Liste des services à collecter services=( "tor-proxy:tor" "bitcoin-signet:bitcoin" "blindbit-oracle:blindbit" "sdk_relay:sdk_relay" "sdk_storage:sdk_storage" "lecoffre-back:lecoffre-back" "lecoffre-front:lecoffre-front" "ihm_client:ihm_client" "grafana:grafana" "loki:loki" "promtail:promtail" "status-api:status-api" "signet_miner:miner" ) for service_entry in "${services[@]}"; do service_name="${service_entry%%:*}" log_dir="${service_entry##*:}" if docker ps --format "table {{.Names}}" | grep -q "^${service_name}$"; then echo "📝 Collecte des logs pour $service_name..." mkdir -p "$LOG_DIR/$log_dir" docker logs "$service_name" > "$LOG_DIR/$log_dir/${service_name}_${TIMESTAMP}.log" 2>&1 echo "✅ Logs collectés pour $service_name" else echo "⚠️ Service $service_name non en cours d'exécution" fi done fi echo "🎉 Collecte terminée!"