📚 Improved logging structure across various logs files in the backend. 🖥️🔍

This commit is contained in:
2025-06-03 13:20:36 +02:00
parent 03ad8f275d
commit b29219ce4c
23 changed files with 274 additions and 14 deletions

View File

@@ -23,6 +23,9 @@ readonly FIREWALL_SERVICE_NAME="myp-firewall"
readonly KIOSK_USER="kiosk"
readonly CURRENT_DIR="$(pwd)"
readonly INSTALL_LOG="/var/log/myp-install.log"
readonly ERROR_LOG="/var/log/myp-install-errors.log"
readonly WARNING_LOG="/var/log/myp-install-warnings.log"
readonly DEBUG_LOG="/var/log/myp-install-debug.log"
readonly HTTPS_PORT="443"
readonly HTTPS_URL="https://localhost:${HTTPS_PORT}"
readonly SYSTEMD_DIR="$CURRENT_DIR/systemd"
@@ -42,17 +45,111 @@ readonly CYAN='\033[0;36m'
readonly NC='\033[0m'
# =========================== VERBESSERTE LOGGING-FUNKTIONEN ===========================
# Globale Variablen für Fehler-Tracking
ERROR_COUNT=0
WARNING_COUNT=0
# Log-Dateien initialisieren
init_logging() {
# Erstelle Log-Verzeichnis falls nötig
mkdir -p "$(dirname "$INSTALL_LOG")" 2>/dev/null || true
# Initialisiere alle Log-Dateien
{
echo "================================================================="
echo "MYP Installation Log - $(date '+%Y-%m-%d %H:%M:%S')"
echo "Script Version: $APP_VERSION"
echo "System: $(uname -a)"
echo "================================================================="
echo ""
} > "$INSTALL_LOG"
{
echo "================================================================="
echo "MYP Installation FEHLER Log - $(date '+%Y-%m-%d %H:%M:%S')"
echo "================================================================="
echo ""
} > "$ERROR_LOG"
{
echo "================================================================="
echo "MYP Installation WARNUNGEN Log - $(date '+%Y-%m-%d %H:%M:%S')"
echo "================================================================="
echo ""
} > "$WARNING_LOG"
{
echo "================================================================="
echo "MYP Installation DEBUG Log - $(date '+%Y-%m-%d %H:%M:%S')"
echo "================================================================="
echo ""
} > "$DEBUG_LOG"
}
log() {
echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')] $1${NC}" | tee -a "$INSTALL_LOG"
local message="[$(date '+%Y-%m-%d %H:%M:%S')] $1"
echo -e "${GREEN}${message}${NC}" | tee -a "$INSTALL_LOG"
}
error() {
echo -e "${RED}[FEHLER] $1${NC}" | tee -a "$INSTALL_LOG"
local timestamp="$(date '+%Y-%m-%d %H:%M:%S')"
local caller="${BASH_SOURCE[1]##*/}:${BASH_LINENO[0]}"
local message="[FEHLER] $1"
# Erhöhe Fehler-Zähler
((ERROR_COUNT++))
# Ausgabe auf Konsole
echo -e "${RED}${message}${NC}" | tee -a "$INSTALL_LOG"
# Detaillierte Fehler-Information in Fehler-Log
{
echo "[$timestamp] FEHLER #$ERROR_COUNT"
echo "Quelle: $caller"
echo "Nachricht: $1"
echo "Arbeitsverzeichnis: $(pwd)"
echo "Benutzer: $(whoami)"
echo "---"
echo ""
} >> "$ERROR_LOG"
# Debug-Informationen sammeln
{
echo "[$timestamp] FEHLER AUFGETRETEN - Debug-Info:"
echo "Caller: $caller"
echo "PWD: $(pwd)"
echo "User: $(whoami)"
echo "Disk Space: $(df -h / | tail -1)"
echo "Memory: $(free -m | grep '^Mem:' | awk '{print $3"/"$2" MB"}')"
echo "Load Average: $(uptime | awk -F'load average:' '{print $2}')"
echo "Recent commands from history:"
history | tail -5 2>/dev/null || echo "History nicht verfügbar"
echo "==============================================="
echo ""
} >> "$DEBUG_LOG"
exit 1
}
warning() {
echo -e "${YELLOW}[WARNUNG] $1${NC}" | tee -a "$INSTALL_LOG"
local timestamp="$(date '+%Y-%m-%d %H:%M:%S')"
local caller="${BASH_SOURCE[1]##*/}:${BASH_LINENO[0]}"
local message="[WARNUNG] $1"
# Erhöhe Warnungs-Zähler
((WARNING_COUNT++))
# Ausgabe auf Konsole
echo -e "${YELLOW}${message}${NC}" | tee -a "$INSTALL_LOG"
# Detaillierte Warnungs-Information in Warnungs-Log
{
echo "[$timestamp] WARNUNG #$WARNING_COUNT"
echo "Quelle: $caller"
echo "Nachricht: $1"
echo "---"
echo ""
} >> "$WARNING_LOG"
}
info() {
@@ -68,7 +165,66 @@ success() {
}
debug() {
local timestamp="$(date '+%Y-%m-%d %H:%M:%S')"
local caller="${BASH_SOURCE[1]##*/}:${BASH_LINENO[0]}"
# Debug sowohl in normales Log als auch Debug-Log
echo -e "${BLUE}[DEBUG] $1${NC}" >> "$INSTALL_LOG"
{
echo "[$timestamp] DEBUG von $caller"
echo "$1"
echo "---"
echo ""
} >> "$DEBUG_LOG"
}
# Fehler-Zusammenfassung anzeigen
show_error_summary() {
echo ""
echo -e "${CYAN}=================================================================${NC}"
echo -e "${CYAN} INSTALLATION ABGESCHLOSSEN - FEHLER-ZUSAMMENFASSUNG${NC}"
echo -e "${CYAN}=================================================================${NC}"
echo ""
echo -e "${BLUE}📊 Statistiken:${NC}"
echo -e " ${RED}❌ Fehler: $ERROR_COUNT${NC}"
echo -e " ${YELLOW}⚠️ Warnungen: $WARNING_COUNT${NC}"
echo ""
echo -e "${BLUE}📁 Log-Dateien:${NC}"
echo -e " 📄 Vollständiges Log: $INSTALL_LOG"
echo -e " 🚨 Fehler-Log: $ERROR_LOG"
echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
echo -e " 🔍 Debug-Log: $DEBUG_LOG"
echo ""
if [ $ERROR_COUNT -gt 0 ]; then
echo -e "${RED}⚠️ Es sind $ERROR_COUNT Fehler aufgetreten!${NC}"
echo -e "${RED} Bitte prüfen Sie: $ERROR_LOG${NC}"
echo ""
# Zeige die letzten 3 Fehler an
if [ -f "$ERROR_LOG" ] && [ -s "$ERROR_LOG" ]; then
echo -e "${RED}🔍 Letzte Fehler:${NC}"
tail -n 20 "$ERROR_LOG" | head -n 15
echo ""
fi
fi
if [ $WARNING_COUNT -gt 0 ]; then
echo -e "${YELLOW}⚠️ Es sind $WARNING_COUNT Warnungen aufgetreten${NC}"
echo -e "${YELLOW} Bitte prüfen Sie: $WARNING_LOG${NC}"
echo ""
fi
if [ $ERROR_COUNT -eq 0 ] && [ $WARNING_COUNT -eq 0 ]; then
echo -e "${GREEN}✅ Installation ohne Fehler oder Warnungen abgeschlossen!${NC}"
elif [ $ERROR_COUNT -eq 0 ]; then
echo -e "${GREEN}✅ Installation erfolgreich mit $WARNING_COUNT Warnungen${NC}"
fi
echo -e "${CYAN}=================================================================${NC}"
}
# =========================== RETRY-MECHANISMEN ===========================
@@ -1930,6 +2086,9 @@ show_menu() {
# =========================== INSTALLATIONS-MODI ===========================
install_dependencies_only() {
# Logging initialisieren
init_logging
log "=== MODUS: ROBUSTE ABHÄNGIGKEITEN-INSTALLATION FÜR MANUELLES TESTEN ==="
# Grundlegende System-Validierung
@@ -1986,9 +2145,15 @@ install_dependencies_only() {
info "🚀 System bereit für manuelle Tests und Entwicklung!"
info "🌐 HTTPS-Backend sollte verfügbar sein: $HTTPS_URL"
info "⚙️ Manuelle App-Start Alternative: cd /opt/myp && python3 app.py"
# Fehler-Zusammenfassung anzeigen
show_error_summary
}
install_full_production_system() {
# Logging initialisieren
init_logging
log "=== MODUS: VOLLSTÄNDIGE ROBUSTE KIOSK-INSTALLATION MIT REMOTE-ZUGANG ==="
# Umfassende System-Validierung
@@ -2082,6 +2247,9 @@ install_full_production_system() {
info ""
success "🚀 Produktionssystem vollständig einsatzbereit!"
warning "⚠️ NEUSTART ERFORDERLICH für automatischen Kiosk-Start: sudo reboot"
# Fehler-Zusammenfassung anzeigen
show_error_summary
}
# =========================== RDP & SSH ZUGANG ===========================
@@ -2849,8 +3017,8 @@ EOF
# =========================== HAUPTPROGRAMM ===========================
main() {
# Erstelle Log-Datei
touch "$INSTALL_LOG" || true
# Erstelle Log-Verzeichnis
mkdir -p "$(dirname "$INSTALL_LOG")" 2>/dev/null || true
while true; do
show_menu
@@ -2860,21 +3028,41 @@ main() {
1)
install_dependencies_only
echo ""
echo -e "${BLUE}📁 Log-Dateien zur Überprüfung:${NC}"
echo -e " 📄 Vollständiges Log: $INSTALL_LOG"
[ $ERROR_COUNT -gt 0 ] && echo -e " 🚨 Fehler-Log: $ERROR_LOG"
[ $WARNING_COUNT -gt 0 ] && echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
echo -e " 🔍 Debug-Log: $DEBUG_LOG"
echo ""
echo -n "Drücken Sie Enter um fortzufahren..."
read -r
;;
2)
install_full_production_system
echo ""
echo -e "${BLUE}📁 Log-Dateien zur Überprüfung:${NC}"
echo -e " 📄 Vollständiges Log: $INSTALL_LOG"
[ $ERROR_COUNT -gt 0 ] && echo -e " 🚨 Fehler-Log: $ERROR_LOG"
[ $WARNING_COUNT -gt 0 ] && echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
echo -e " 🔍 Debug-Log: $DEBUG_LOG"
echo ""
echo -n "Drücken Sie Enter um fortzufahren..."
read -r
;;
3)
log "Setup-Skript beendet"
echo ""
echo -e "${CYAN}Setup-Skript beendet${NC}"
if [ -f "$INSTALL_LOG" ]; then
echo -e "${BLUE}📁 Verfügbare Log-Dateien:${NC}"
echo -e " 📄 Vollständiges Log: $INSTALL_LOG"
[ -f "$ERROR_LOG" ] && echo -e " 🚨 Fehler-Log: $ERROR_LOG"
[ -f "$WARNING_LOG" ] && echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
[ -f "$DEBUG_LOG" ] && echo -e " 🔍 Debug-Log: $DEBUG_LOG"
fi
exit 0
;;
*)
error "Ungültige Auswahl. Bitte wählen Sie 1-3."
echo -e "${RED}Ungültige Auswahl. Bitte wählen Sie 1-3.${NC}"
;;
esac
done