Deploy Logları — Build Hatalarını Anında Görün ve Çözün

Deploy başarısız mı oldu? Skyversal canlı log akışıyla build ve runtime hatalarını saniyeler içinde tespit edin. Production ortamında hata ayıklamak hiç bu kadar kolay olmamıştı.

Okuma Süresi
3 dakika
Destek
Tüm Uygulamalar
Gerçek Zamanlı
Evet (Real-time)

Bu rehberde neler öğreneceksiniz?

  • Build (Derleme) ve Run (Çalışma) logları arasındaki kritik farkı anlayacaksınız.
  • Canlı logları izleyerek hataların kök nedenini (root cause) saniyeler içinde tespit etmeyi göreceksiniz.
  • Sık karşılaşılan EADDRINUSE ve Connection Refused hatalarını çözmeyi öğreneceksiniz.

İyi bir geliştirici ile harika bir geliştirici arasındaki fark, log okuma ve yorumlama hızında yatar. Skyversal, uygulamanızın arka planda ürettiği tüm stdout ve stderr çıktılarını gecikmesiz olarak tarayıcınıza taşır. Sorun çözmek (production debugging) için SSH ile sunucuya bağlanmanıza, terminalde "tail" komutları koşturmanıza gerek kalmaz.

🧱 1. Build (Derleme) Logları

Projeniz her güncellendiğinde (GitHub'a push attığınızda veya manuel re-deploy tetiklediğinizde) çalıştırılan geçici izolasyon adımının günlükleridir. Uygulamanız bu aşamada henüz dış dünyaya açılmamıştır.

Build Loglarında Genellikle Şunları Görürsünüz:

  • Paket yöneticilerinin indirdiği kütüphaneler (npm install, composer install).
  • TypeScript veya asset derleme süreçleri (vite build, next build).
  • Eksik paket veya yazım hatası (Syntax Error) bildirimleri.
💡 İpucu: Zero-Downtime ve Güvenli Hata Ayıklama

Eğer uygulamanızın kodu bozuksa ve Build aşamasında çökerse (Failed), Skyversal yeni versiyonu canlıya almaz. Siteniz eski versiyonuyla, sıfır kesintiyle (Zero-Downtime) çalışmaya devam eder. Log ekranındaki kırmızı ERROR satırlarına odaklanarak eksik paketi veya kod hatasını bulup yerelde düzeltebilirsiniz.

⚡ 2. Runtime (Çalışma Zamanı) Logları

Build işlemi başarıyla tamamlandığında sistem Run komutunu çalıştırır ve uygulamanız dünyaya açılır. Runtime logları; uygulamanız trafik aldıkça, veritabanına bağlandıkça veya içeride bir hata fırlatıldığında sürekli olarak ekrana akan üretim günlükleridir.

[14:22:01] INFO: Server running on port 8080
[14:22:05] INFO: Database connected successfully
[14:25:12] WARN: Slow query detected in /api/users (2045ms)
[14:28:44] ERROR: Connection refused at tcp://db-host:5432

🩺 3. Sık Karşılaşılan Log Hataları ve Çözümleri

EADDRINUSE

Port Dinleme Hatası

Bu hata, uygulamanızın Skyversal'in dinamik olarak atadığı port yerine, kendi içindeki sabit bir portu (örn: 3000) dinlemeye çalışması yüzünden oluşur. Skyversal, uygulamanızın dış dünya ile iletişim kuracağı asıl portu $PORT çevresel değişkeni (environment variable) olarak kodunuza gönderir.

❌ Yanlış Kullanım:
// Uygulama sadece kendi içinde 3000 portuna sıkışır ve dışarıdan erişilemez.
app.listen(3000, 'localhost');
✅ Doğru Kullanım:
// Sistemden gelen portu yakalar, bulamazsa 8080'i dener ve tüm IP'lere (0.0.0.0) açılır.
const port = process.env.PORT || 8080;
app.listen(port, '0.0.0.0');
Connection Refused

Veritabanı veya Servis Erişimi

Eğer uygulamanız "Crashed" durumundaysa ve loglarda Connection Refused görüyorsanız, Environment Variables (.env) sayfasında veritabanı ayarlarınızın (DB_HOST, DB_PASSWORD vb.) eksiksiz olduğundan emin olun. Geliştirme ortamınızdaki yerel (localhost) veritabanına Skyversal üzerinden erişemeyeceğinizi unutmayın; dışa açık, uzak bir veritabanı adresi girmeniz gerekir.

🎉 Profesyonel Gibi Debug Edin!

Artık projenizde ters giden her şeyi loglardan nasıl takip edeceğinizi ve altyapı sorunlarını kod seviyesinde nasıl çözeceğinizi biliyorsunuz. Platformumuzu kullanarak tamamen otonom uygulamalar yönetmeye çok yakınsınız.

Sonraki rehberimizde projenize veritabanı eklentilerini nasıl bağlayacağınızı ve yöneteceğinizi öğrenebilirsiniz.

👉 Yönetilen Veritabanları (Managed Databases)
Son güncelleme: 27 Temmuz 2026
Bu sayfayı GitHub'da düzenle