Protokollierung & Debugging
Zuverlässige Protokollierung ist eine der Kernkomponenten der ByNinja Trading Bot-Architektur. Jede wichtige Aktion im System wird aufgezeichnet, strukturiert und in Echtzeit über die Telegram-Integration weitergeleitet. Dies ermöglicht es Händlern, den Bot aus der Ferne zu überwachen, Probleme sofort zu erkennen und komplexe Handelsszenarien ohne direkten Serverzugriff zu debuggen.
Das Protokollierungssystem ist um drei Hauptziele herum konzipiert:
- •Echtzeit-Überwachung
- •Detaillierte Fehlerdiagnose
- •Fernbeobachtbarkeit über Telegram
Im Gegensatz zu einfachen Konsolenimplementierungen kombiniert die ByNinja-Infrastruktur rotierende Dateiprotokolle, Konsolenausgabe, TCP-Weiterleitung und Telegram-Zustellung zu einer einheitlichen Überwachungspipeline.
Log-Struktur
Der Bot verwendet eine zentralisierte Protokollierungsarchitektur, die auf dem Logging-Modul von Python basiert.
Jede Protokollnachricht folgt einer standardisierten Struktur:
2026-05-19 14:32:11 - TradingBot - INFO - Opened BUY position BTCUSDTDer Formatierer enthält:
- •Zeitstempel
- •Logger-Name
- •Schweregradstufe
- •Menschlich lesbare Nachricht
Beispielkonfiguration des Formatierers:
039;%(asctime)s - %(name)s - %(levelname)s - %(message)s039;Diese Struktur macht Protokolle einfach zu:
- •Durchsuchen
- •Parsen
- •Filtern
- •Analysieren
- •An externe Systeme weiterleiten
Das System verwendet mehrere Protokollierungsstufen:
| Stufe | Zweck |
|---|---|
| DEBUG | Interner Ausführungsablauf |
| INFO | Handelsaktionen und Statusaktualisierungen |
| WARNING | Verdächtiges oder unerwartetes Verhalten |
| ERROR | Behebbare Fehler |
| CRITICAL | Fatale Systemprobleme |
Rotierende Dateiprotokolle
Der Logger speichert Protokolle automatisch in rotierenden Dateien mit dem RotatingFileHandler.
Zu den Funktionen gehören:
- •Automatische Protokollpersistenz
- •Dateigrößenbegrenzungen
- •Historische Sicherungskopien
- •UTF-8-Kodierungsunterstützung
Konfiguration:
RotatingFileHandler(
filename=self._log_file,
maxBytes=250*1024*1024,
backupCount=5,
encoding=039;utf-8039;
)Dies verhindert unkontrolliertes Protokollwachstum und bewahrt gleichzeitig historische Debugging-Daten.
Das System behält:
- •Aktuelles aktives Protokoll
- •Bis zu 5 archivierte Protokolldateien
- •250 MB pro Datei
Dieser Ansatz ist besonders wichtig für lang laufende Handelssysteme, die 24/7 kontinuierlich arbeiten.
Echtzeit-Telegram-Protokollierung
Eines der Hauptmerkmale der ByNinja-Infrastruktur ist, dass Handelsbot-Protokolle automatisch in Echtzeit an den Telegram-Bot weitergeleitet werden.
Die Architektur funktioniert wie folgt:
Trading Bot
↓
Python Logger
↓
TCP Log Handler
↓
TCP Client
↓
Telegram TCP Server
↓
Telegram Bot
↓
Telegram ChatJedes wichtige Ereignis, das vom Handelsbot generiert wird, kann sofort im privaten Telegram-Kanal oder -Chat erscheinen.
Beispiele:
✅ Position opened
📈 Take profit executed
⚠️ API rate limit warning
❌ Binance order rejected
🛑 Emergency shutdown triggeredDies gibt dem Betreiber sofortige Einblicke in das System ohne SSH-Zugriff oder Server-Überwachungstools.
Der Weiterleitungsmechanismus wird über einen benutzerdefinierten TCP-Logging-Handler implementiert:
tcp_handler = TCPLogHandler(tcp_manager)
logger.addHandler(tcp_handler)Der Telegram-Server empfängt Nachrichten über TCP und leitet sie direkt an die Telegram Bot API weiter.
Dies verwandelt Telegram effektiv in ein Echtzeit-Fernüberwachungsdashboard für die Handelsengine.
Debug-Workflow
Der Debugging-Workflow ist für eine schnelle Problemisolierung und -behebung ausgelegt.
Schritt 1 — Problem erkennen
Die meisten Probleme sind sofort über Telegram-Benachrichtigungen sichtbar.
Beispiel:
❌ Error starting TCP client: Connection refusedoder:
⚠️ Unknown message typeDa Protokolle in Echtzeit geliefert werden, können Probleme oft innerhalb von Sekunden erkannt werden.
Schritt 2 — Detaillierte Protokolle einsehen
Wenn eine tiefere Untersuchung erforderlich ist, können Entwickler einsehen:
- •
trading.log - •
telegram_tcp.log - •
trading_tcp.log
Die Protokolle liefern chronologische Ausführungsabläufe für:
- •Strategieentscheidungen
- •Orderausführung
- •TCP-Kommunikation
- •Telegram-Interaktionen
- •Persistenzoperationen
- •Herunterfahrereignisse
Schritt 3 — Szenario reproduzieren
Die DEBUG-Stufe kann aktiviert werden, um zu erfassen:
- •Interne Zustandsübergänge
- •TCP-Nachrichtenfluss
- •Befehlsausführung
- •Thread-Lebenszyklus
- •Persistenzoperationen
Dies ermöglicht es Entwicklern, schwierige Randfälle und Race Conditions zu reproduzieren.
Schritt 4 — Fehlerkette verfolgen
Da jedes Subsystem eine zentralisierte Protokollierung verwendet, wird es möglich, die genaue Ereignisfolge zu rekonstruieren, die zu einem Fehler führte.
Beispielkette:
Signal generated
→ Order request sent
→ Binance API timeout
→ Retry triggered
→ Risk manager warning
→ Position recovery activatedDies ist besonders nützlich in asynchronen Multithread-Systemen, bei denen Probleme weit entfernt vom sichtbaren Fehlerpunkt entstehen können.
Fehlerverfolgung
Das Protokollierungssystem ist stark auf strukturierte Fehlerverfolgung ausgerichtet.
Alle kritischen Operationen sind in try/except-Blöcke mit expliziter Fehlerberichterstattung eingeschlossen:
except Exception as e:
logger.error(f"❌ Critical error: {e}")Dies stellt sicher, dass unerwartete Fehler niemals stillschweigend verschwinden.
Das System verfolgt Fehler über mehrere Ebenen hinweg:
| Ebene | Beispielfehler |
|---|---|
| Binance API | Orderablehnung, Timeout |
| TCP-Ebene | Verbindungsverlust |
| Telegram Bot | API-Fehler |
| Persistenz | Dateibeschädigung |
| Strategie-Engine | Ungültige Signale |
| Threading | Deadlocks oder Abstürze |
Pro-Tipp: Verwenden Sie einen Code-Editor
Für eine viel bessere Erfahrung beim Bearbeiten von Konfigurationsdateien empfehlen wir die Verwendung eines professionellen Code-Editors wie Visual Studio Code.
Download VS Code ↗Protokollierung des kontrollierten Herunterfahrens
Der Bot protokolliert auch Herunterfahr- und Wiederherstellungsoperationen.
Beispiel:
🛑 Shutdown signal received...
✅ PersistentMap stopped
💾 Forcing save to disk...Dies ist in Handelsumgebungen äußerst wichtig, da es bestätigt, dass:
- •Positionen gespeichert wurden
- •Threads korrekt gestoppt wurden
- •Ausstehende Operationen abgeschlossen wurden
- •Persistenz erfolgreich geleert wurde
Fernoperationen über Telegram
Die Telegram-Integration beschränkt sich nicht auf passive Protokolle.
Dieselbe Infrastruktur unterstützt auch die Ausführung von Fernbefehlen.
Beispiele:
/starttrading
/stoptrading
/getstatus
/getstats
/buy BTCUSDT
/sell ETHUSDTDies schafft einen vollständig remoteen Betriebsablauf:
- •Alarme in Telegram erhalten
- •Protokolle analysieren
- •Wiederherstellungsbefehle senden
- •Ausführungsergebnisse überwachen
Alles ohne direkten Serverzugriff.
Produktionsorientierte Überwachungsarchitektur
Die gesamte Protokollierungsarchitektur kombiniert mehrere produktionsreife Praktiken:
- •Zentralisierte Protokollierung
- •Strukturierte Formatierung
- •Rotierende Protokolldateien
- •Echtzeit-Fernbenachrichtigungen
- •Multithread-sichere Protokollierung
- •TCP-Protokoll-Streaming
- •Kontrollierte Herunterfahrverfolgung
- •Fernbetriebliche Steuerung
Dies verwandelt das Protokollierungs-Subsystem von einem einfachen Debugging-Dienstprogramm in eine vollständige Überwachungs- und Betriebsinfrastruktur für automatisierten Krypto-Handel.