Günlükleme ve Hata Ayıklama
Güvenilir günlükleme, ByNinja Trading Bot mimarisinin temel bileşenlerinden biridir. Sistem içindeki her önemli eylem kaydedilir, yapılandırılır ve Telegram entegrasyonu aracılığıyla gerçek zamanlı olarak iletilir. Bu, tüccarların botu uzaktan izlemesine, sorunları anında tespit etmesine ve doğrudan sunucu erişimi olmadan karmaşık trading senaryolarında hata ayıklamasına olanak tanır.
Günlükleme sistemi üç ana hedef etrafında tasarlanmıştır:
- •Gerçek zamanlı izleme
- •Ayrıntılı hata teşhisi
- •Telegram aracılığıyla uzaktan gözlemlenebilirlik
Temel konsol-only uygulamalarının aksine, ByNinja altyapısı, dönen dosya günlükleri, konsol çıktısı, TCP iletimi ve Telegram teslimatını birleşik bir izleme hattında birleştirir.
Günlük Yapısı
Bot, Python'ın logging modülü üzerine inşa edilmiş merkezi bir günlükleme mimarisi kullanır.
Her günlük mesajı standartlaştırılmış bir yapıyı takip eder:
2026-05-19 14:32:11 - TradingBot - INFO - Opened BUY position BTCUSDTBiçimlendirici şunları içerir:
- •Zaman damgası
- •Günlükçü adı
- •Şiddet seviyesi
- •İnsan tarafından okunabilir mesaj
Örnek biçimlendirici yapılandırması:
039;%(asctime)s - %(name)s - %(levelname)s - %(message)s039;Bu yapı, günlükleri şunlar için kolaylaştırır:
- •Arama
- •Ayrıştırma
- •Filtreleme
- •Analiz
- •Harici sistemlere iletme
Sistem birden çok günlük seviyesi kullanır:
| Seviye | Amaç |
|---|---|
| DEBUG | İç yürütme akışı |
| INFO | Trading eylemleri ve durum güncellemeleri |
| WARNING | Şüpheli veya beklenmeyen davranış |
| ERROR | Kurtarılabilir hatalar |
| CRITICAL | Kritik sistem sorunları |
Dönen Dosya Günlükleri
Günlükçü, RotatingFileHandler kullanarak günlükleri otomatik olarak dönen dosyalara kaydeder.
Özellikler şunları içerir:
- •Otomatik günlük kalıcılığı
- •Dosya boyutu limitleri
- •Geçmiş yedekleri
- •UTF-8 kodlama desteği
Yapılandırma:
RotatingFileHandler(
filename=self._log_file,
maxBytes=250*1024*1024,
backupCount=5,
encoding=039;utf-8039;
)Bu, kontrolsüz günlük büyümesini önlerken tarihsel hata ayıklama verilerini korur.
Sistem şunları saklar:
- •Mevcut aktif günlük
- •5'e kadar arşivlenmiş günlük dosyası
- •Dosya başına 250 MB
Bu yaklaşım, 7/24 sürekli çalışan uzun süreli trading sistemleri için özellikle önemlidir.
Gerçek Zamanlı Telegram Günlükleme
ByNinja altyapısının en önemli özelliklerinden biri, trading botu günlüklerinin gerçek zamanlı olarak otomatik olarak Telegram botuna iletilmesidir.
Mimari şu şekilde çalışır:
Trading Bot
↓
Python Logger
↓
TCP Log Handler
↓
TCP Client
↓
Telegram TCP Server
↓
Telegram Bot
↓
Telegram ChatTrading botu tarafından oluşturulan her önemli olay, anında özel Telegram kanalında veya sohbetinde görünebilir.
Örnekler:
✅ Position opened
📈 Take profit executed
⚠️ API rate limit warning
❌ Binance order rejected
🛑 Emergency shutdown triggeredBu, operatöre SSH erişimi veya sunucu izleme araçları olmadan sisteme anında görünürlük sağlar.
İletme mekanizması, özel bir TCP günlük işleyicisi aracılığıyla uygulanır:
tcp_handler = TCPLogHandler(tcp_manager)
logger.addHandler(tcp_handler)Telegram sunucusu, mesajları TCP aracılığıyla alır ve doğrudan Telegram Bot API'sine iletir.
Bu, Telegram'ı trading motoru için gerçek zamanlı bir uzaktan izleme panosuna etkili bir şekilde dönüştürür.
Hata Ayıklama İş Akışı
Hata ayıklama iş akışı, hızlı sorun izolasyonu ve kurtarma için tasarlanmıştır.
Adım 1 — Sorunu Tespit Edin
Çoğu sorun, Telegram bildirimleri aracılığıyla hemen görünür.
Örnek:
❌ Error starting TCP client: Connection refusedveya:
⚠️ Unknown message typeGünlükler gerçek zamanlı olarak teslim edildiğinden, sorunlar genellikle saniyeler içinde tespit edilebilir.
Adım 2 — Ayrıntılı Günlükleri İnceleyin
Daha derin bir araştırma gerektiğinde, geliştiriciler şunları inceleyebilir:
- •
trading.log - •
telegram_tcp.log - •
trading_tcp.log
Günlükler şunlar için kronolojik yürütme izleri sağlar:
- •Strateji kararları
- •Emir yürütme
- •TCP iletişimi
- •Telegram etkileşimleri
- •Kalıcılık işlemleri
- •Kapanış olayları
Adım 3 — Senaryoyu Yeniden Oluşturun
Hata Ayıklama (DEBUG) seviyesi şunları yakalamak için etkinleştirilebilir:
- •İç durum geçişleri
- •TCP mesaj akışı
- •Komut yürütme
- •İş parçacığı yaşam döngüsü
- •Kalıcılık işlemleri
Bu, geliştiricilerin zor uç durumları ve yarış koşullarını yeniden oluşturmasını sağlar.
Adım 4 — Hata Zincirini İzleyin
Her alt sistem merkezi günlükleme kullandığından, bir hataya yol açan olayların tam sırasını yeniden yapılandırmak mümkün hale gelir.
Örnek zincir:
Signal generated
→ Order request sent
→ Binance API timeout
→ Retry triggered
→ Risk manager warning
→ Position recovery activatedBu, özellikle sorunların görünür hata noktasından çok uzakta kaynaklanabileceği eşzamansız çoklu iş parçacıklı sistemlerde kullanışlıdır.
Hata İzleme
Günlükleme sistemi, büyük ölçüde yapılandırılmış hata izlemeye odaklanmıştır.
Tüm kritik işlemler, açık hata bildirimi ile try/except bloklarına sarılır:
except Exception as e:
logger.error(f"❌ Critical error: {e}")Bu, beklenmeyen hataların asla sessizce kaybolmamasını sağlar.
Sistem, hataları birden çok katmanda izler:
| Katman | Örnek Hatalar |
|---|---|
| Binance API | Emir reddi, zaman aşımı |
| TCP Katmanı | Bağlantı kaybı |
| Telegram Botu | API hataları |
| Kalıcılık | Dosya bozulması |
| Strateji Motoru | Geçersiz sinyaller |
| İş Parçacığı | Kilitlenmeler veya çökmeler |
Pro İpucu: Bir Kod Editörü Kullanın
Yapılandırma dosyalarını düzenlerken çok daha iyi bir deneyim için Visual Studio Code gibi profesyonel bir kod editörü kullanmanızı öneririz.
Download VS Code ↗Düzgün Kapanış Günlüklemesi
Bot ayrıca kapanış ve kurtarma işlemlerini de günlükler.
Örnek:
🛑 Shutdown signal received...
✅ PersistentMap stopped
💾 Forcing save to disk...Bu, trading ortamlarında son derece önemlidir çünkü şunları doğrular:
- •Pozisyonlar kaydedildi
- •İş parçacıkları doğru durdu
- •Bekleyen işlemler tamamlandı
- •Kalıcılık başarıyla temizlendi
Telegram Üzerinden Uzaktan İşlemler
Telegram entegrasyonu pasif günlüklerle sınırlı değildir.
Aynı altyapı, uzaktan komut yürütmeyi de destekler.
Örnekler:
/starttrading
/stoptrading
/getstatus
/getstats
/buy BTCUSDT
/sell ETHUSDTBu, tamamen uzaktan bir operasyonel iş akışı oluşturur:
- •Telegram'da uyarıları alın
- •Günlükleri analiz edin
- •Kurtarma komutları gönderin
- •Yürütme sonuçlarını izleyin
Tüm bunlar doğrudan sunucu erişimi olmadan.
Üretime Yönelik İzleme Mimarisi
Genel günlükleme mimarisi, birkaç üretim sınıfı uygulamayı birleştirir:
- •Merkezi günlükleme
- •Yapılandırılmış biçimlendirme
- •Dönen günlük dosyaları
- •Gerçek zamanlı uzaktan bildirimler
- •Çoklu iş parçacığı güvenli günlükleme
- •TCP günlük akışı
- •Düzgün kapanış izleme
- •Uzaktan operasyonel kontrol
Bu, günlükleme alt sistemini basit bir hata ayıklama yardımcı programından, otomatik kripto ticareti için eksiksiz bir izleme ve operasyonel altyapıya dönüştürür.