ServBay'de Günlük Dosyalarını Görüntüleme: Hata Ayıklama ve Sorun Giderme Rehberi
Web geliştirme ve sunucu yönetimi sırasında günlük dosyaları; sorunları tanılamak, performansı izlemek ve uygulama davranışını anlamak için kritik öneme sahiptir. Güçlü bir yerel web geliştirme ortamı olan ServBay, çoklu yazılım paketlerini (web sunucuları, veritabanları, programlama dili derleyicileri vb.) entegre bir şekilde sunar ve tüm bu paketlerin günlüklerini merkezi olarak yönetir.
Bu makalede, ServBay'de günlük dosyalarını görüntülemenin iki ana yöntemi ayrıntılı şekilde ele alınacaktır: macOS terminal komut satırı üzerinden ve ServBay’in grafiksel kullanıcı arayüzü (GUI) ile. Bu yöntemlere hakim olmak, ServBay ortamında hata ayıklama ve sorunları hızlıca çözmek için büyük avantaj sağlar.
Hedef Okuyucu Kitlesi: ServBay ile yerel geliştirme yapan web geliştiricileri; PHP, Node.js, Python, Go, Java, Ruby, Rust, .NET, veritabanları (MySQL, PostgreSQL, MongoDB, MariaDB), önbellekleme servisleri (Redis, Memcached), web sunucuları (Caddy, Nginx, Apache) gibi teknoloji yığınlarını kullananlar.
Günlük Dosyalarının Önemi
Günlük dosyalarını bu kadar önemli kılan nedir?
- Hata Teşhisi: Uygulamanın veya sunucunun çökmesi, yapılandırma hataları veya izin problemleri gibi durumlarda ayrıntılı hata kayıtları günlük dosyalarına yazılır.
- Davranış Analizi: Kullanıcı istekleri, sunucu yanıtları ve veritabanı sorguları gibi işlemleri takip ederek performansı optimize edebilir ve olağandışı kalıpları tespit edebilirsiniz.
- Güvenlik Denetimi: Günlükler potansiyel güvenlik olayları ya da yetkisiz erişim teşebbüslerini kaydedebilir.
- Performans İzleme: Bazı günlükler istek yanıtlama süresi ve kaynak kullanımı gibi performans verilerini içerir.
ServBay, tüm yazılım paketlerinin günlüklerini tek bir yerde toplayarak geliştiricilerin kolayca incelemesini sağlar.
ServBay Günlük Dosyalarının Depolandığı Konum
ServBay’de tüm günlük dosyaları merkezi olarak aşağıdaki dizinde saklanır:
/Applications/ServBay/logs
Bu dizin içerisinde ServBay’in kendisi ve kurulu/çalışan tüm yazılım paketlerinin (PHP, Caddy, Nginx, MySQL, PostgreSQL, Redis vb.) günlük dosyaları, genellikle paket türüne veya sürümüne göre alt klasörlere ayrılmış şekilde bulunur.
Yöntem 1: macOS Terminali Üzerinden Günlük Dosyalarına Erişim
Komut satırına aşina geliştiriciler için, günlükleri doğrudan terminalden okumak büyük esneklik ve güçlü metin işleme yeteneği (ör. grep
ile filtreleme, tail -f
ile anlık izleme) sunar.
1. Terminal Uygulamasını Açın
macOS’ta “Terminal” uygulamasını açın.
2. ServBay Günlük Klasörüne Geçiş Yapın
Aşağıdaki cd
komutuyla günlük dizinine geçin:
cd /Applications/ServBay/logs
3. Günlük Dosyalarını ve Dizin Yapısını Listeleyin
ls
komutu ile mevcut tüm günlük dosyalarını ve alt klasörleri görebilirsiniz:
ls -l
Aşağıdakine benzer bir yapı ile karşılaşacaksınız (detaylar kurulu paketlere göre değişir):
caddy/
dnsmasq.log
mailpit.log
mariadb/
memcached.log
mongodb/
mysql/
nginx/
apache/
php/
|____5.6/
|____7.0/
|____7.1/
|____7.2/
|____7.3/
|____7.4/
|____8.0/
|____8.1/
|____8.2/
|____8.3/
|____8.4/
postgresql/
redis.log
xdebug/
|____5.6/
|____7.0/
|____7.1/
|____7.2/
|____7.3/
|____7.4/
|____8.0/
|____8.1/
|____8.2/
|____8.3/
|____8.4/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
4. Belirli Bir Günlük Dosyasını Görüntüleyin
cat
, less
, tail
gibi standart komut satırı araçlarıyla günlük dosyalarına bakabilirsiniz.
cat <dosya_adı>
: Tüm dosyanın içeriğini bir seferde gösterir (küçük dosyalar için idealdir).less <dosya_adı>
: İçeriği sayfa sayfa görüntülemenizi ve arama yapmanızı sağlar (büyük dosyalar için).tail -f <dosya_adı>
: Dosyanın en son satırlarını ve yeni eklemeleri gerçek zamanlı izler; hata ayıklama sırasında idealdir.
Örnekler:
PHP 8.3 FPM Günlüğünü Görüntüleme:
bashcat php/8.3/php-fpm.log # veya sayfa sayfa görüntüle less php/8.3/php-fpm.log # veya günlüğü anlık olarak izle tail -f php/8.3/php-fpm.log
1
2
3
4
5Caddy Web Sunucusu Hata Günlüğünü Görüntüleme: Caddy’e ait günlükler genellikle
caddy
alt klasöründe bulunur. Önce ilgili dizine geçin, ardından dosyayı kontrol edin.bashcd caddy ls # Dosya adını görüntüle, örneğin error.log tail -f error.log
1
2
3Nginx Web Sunucusu Hata Günlüğünü Görüntüleme: Nginx günlükleri
nginx
alt klasöründedir.bashcd nginx ls # Dosya adını kontrol et; error.log, access.log örnekleri tail -f error.log
1
2
3MySQL 8 Günlüğünü Görüntüleme: MySQL günlükleri
mysql
klasöründe saklanır.bashcd mysql ls # Dosya adlarını kontrol et; error.log, slow.log örnekleri tail -f error.log
1
2
3PostgreSQL Günlüğünü Görüntüleme: PostgreSQL günlükleri
postgresql
klasöründedir.bashcd postgresql ls # Dosya adlarını gör tail -f postgresql.log
1
2
3Redis Günlüğünü Görüntüleme:
bashtail -f redis.log
1
5. grep
ile Günlüklerde Filtreleme Yapmak
Günlükler çok büyüdüğünde, grep
komutu ile belirli anahtar kelimeleri hızla bulabilirsiniz.
Örnekler:
PHP 8.3 günlüğünde "error" içeren tüm satırları ara:
bashgrep "error" php/8.3/php-fpm.log
1Caddy hata günlüğünde bir isteğe ait kayıtları bulmak:
bashtail -f caddy/error.log | grep "servbay.demo"
1
tail -f
ile grep
i birleştirerek, sizi ilgilendiren günlük girdilerini anlık ve filtrelenmiş şekilde izleyebilirsiniz.
Yöntem 2: ServBay Grafiksel Kullanıcı Arayüzü (GUI) ile Günlükleri Okumak
Komut satırına yabancı olan geliştiriciler için, ServBay’in GUI'si; belirli paket veya sitelere ait log dosyalarını anında ve kolayca görüntüleyebilmenizi sağlar.
1. ServBay Uygulamasını Başlatın
macOS’un Uygulamalar
klasöründen ServBay simgesini bulun ve çift tıklayarak başlatın.
2. GUI Üzerinden Günlüklere Erişim
ServBay, çeşitli panellerde günlükleri hızlıca açabileceğiniz ikonlar sunar:
'Genel Bakış (Dashboard)' Paneli ile
ServBay penceresi açıldığında varsayılan olarak 'Genel Bakış' paneline gelirsiniz. Buradaki ‘Hızlı Servis Yönetimi’ bölümünde, her kurulu veya çalışan paket yanında bir günlük (log) ikonu (genellikle belge veya dosya simgesi) bulunur. Bu ikona tıkladığınızda ilgili paketin günlük dosyası doğrudan açılır.
Görsel: Genel Bakış panelinde ikon ile günlükleri hızlı görüntüleme
'Paketler (Packages)' Paneli ile
- ServBay GUI’de sol menüdeki ‘Paketler’ paneline gidin.
- Paket listesinde, her paketin sağındaki günlük (log) ikonuna tıklayarak o paketin log dosyasını açabilirsiniz.
Görsel: Paketler panelinden loglara erişim
'Web Siteleri (Websites)' Paneli ile
- ServBay GUI’de sol menüden ‘Web Siteleri’ paneline geçin.
- Site listesindeki her site ayarının sağındaki log ikonu, o siteyle ilişkili web sunucusunun (Caddy, Nginx, Apache) erişim veya hata günlüklerini açar. Özellikle belirli sitelere ait sorunları incelerken faydalıdır.
Görsel: Web sitelerine ait günlükleri görüntüleme
'Paket Ayarları (Package Configs)' Paneli ile
- Sol menüden ‘Paket Ayarları’ panelini açın.
- Görüntülemek istediğiniz paketi seçin (ör. PHP 8.3). Sağ üstte genellikle bir günlük ikonunu göreceksiniz; tıkladığınızda ilgili sürüme ait günlükler açılır.
Görsel: Paket ayarlarından logları görüntüleme
GUI ile logları incelemek, dosya yolu ya da terminal komutlarını ezberlemede zorlananlar için oldukça hızlı ve sezgiseldir; mevcut durumu ve son hataları gözden geçirmek için idealdir.
Sık Kullanılan ServBay Günlük Dosyaları ve Anlamları
Farklı günlük dosyalarının ne amaçla kullanıldığını bilmek sorunu daha hızlı bulmanızı sağlar:
/Applications/ServBay/logs/caddy/
: Caddy web sunucusu logları, genellikleaccess.log
(tüm gelen istekler) veerror.log
(sunucu hataları) içerir./Applications/ServBay/logs/nginx/
: Nginx web sunucusu logları;access.log
veerror.log
dosyaları./Applications/ServBay/logs/apache/
: Apache sunucusu; yineaccess.log
veerror.log
./Applications/ServBay/logs/php/<sürüm_no>/php-fpm.log
: PHP-FPM süreci ve hataları ile ilgili kayıtlar, başlatma ve çalışma sırasında oluşan sorunlar./Applications/ServBay/logs/mysql/error.log
: MySQL veritabanı sunucusu için başlatma, kapatılma, çalışma sürecindeki hatalar, uyarı ve çökme raporları./Applications/ServBay/logs/mysql/slow.log
: Belirli süreyi aşan yavaş SQL sorgularının kayıtları (aktifse)./Applications/ServBay/logs/mariadb/error.log
: MariaDB veritabanı için hatalar ve durum bilgileri, MySQL'e benzer şekilde./Applications/ServBay/logs/postgresql/postgresql.log
: PostgreSQL sunucusu ile ilgili bağlantı, sorgu hatası, konfigürasyon gibi olaylar./Applications/ServBay/logs/mongodb/mongodb.log
: MongoDB’nin başlatılması, bağlantı, replikasyon, parçalama ve çalışma hataları./Applications/ServBay/logs/redis.log
: Redis başlangıcı, konfigürasyon, yedekleme ve çalışma hataları./Applications/ServBay/logs/memcached.log
: Memcached önbellek servisinin çalışma ve başlatma bilgileri./Applications/ServBay/logs/mailpit.log
: Mailpit e-posta yakalama aracının durumu ve alınan e-postalar./Applications/ServBay/logs/xdebug/<sürüm_no>/
: XDebug oturum ve hata ayıklama kayıtları (aktifse)./Applications/ServBay/logs/dnsmasq.log
: ServBay’in dahili DNS servisi (Dnsmasq) sorgu ve çözüm kayıtları, yerel alan adlarını teşhis etmek için özellikle faydalı.
Günlük Dosyası Yönetimi ve Temizliği
Zamanla, günlük dosyaları büyüyerek disk alanınızı gereksiz yere işgal edebilir. Düzenli olarak boyut kontrolü yapmanızı ve gerekirse temizlemenizi veya arşivlemenizi öneririz.
Terminal ile ihtiyacınız olmayan eski logları silmek mümkündür. Örneğin, belirli bir PHP hata günlüğünü silmek için:
rm /Applications/ServBay/logs/php/7.4/php-fpm.log
Önemli Notlar:
- Silmeden önce, ihtiyaç duymadığınızdan ya da yedeğini aldığınızdan emin olun.
- Hala yazılmakta olan bir log dosyasını silmek, sürecin log üretimini durdurup servisi bozabilir. Dosyaları silmeden önce ilgili servisi durdurun veya log döndürme (rotation) sistemleri kullanın (ServBay’in bazı paketlerinde log döndürme zaten yapılandırılmış olabilir).
Sonuç
Günlük dosyalarını incelemek ve analiz etmek yerel geliştirme ortamında vazgeçilmez bir beceridir. ServBay, merkezi günlük klasör yapısı ve kullanıcı dostu GUI erişimi sayesinde bu süreci son derece kolaylaştırır. Esneklik ve güç arayanlar için komut satırı, sezgisel ve hızlı sonuç isteyenler için ise GUI gibi çeşitli yollar sunar. Kritik servislerin günlüklerini düzenli kontrol etmek, sorunları hızlıca tespit etmenizi ve yerel geliştirme ortamınızın stabil, güvenilir kalmasını sağlar.