Hata Kayıt Sistemleri: Python, PHP ve ASP ile Uygulamalı Rehber

Hata kayıt sistemleri (log sistemleri), uygulama veya sistemlerdeki hataları ve önemli olayları izlemek için kullanılır. Geliştiriciler, sistem yöneticileri ve güvenlik uzmanları için hata kaydı tutmak, sorunları teşhis etmek, performans izlemek ve güvenlik açıklarını saptamak açısından kritik öneme sahiptir.

Hata kayıt sistemleri yalnızca hataların kaydedilmesiyle sınırlı kalmaz, aynı zamanda sistemdeki önemli olaylar, uyarılar ve bilgi mesajları da kaydedilmelidir.

Hata Kayıt Sistemi Nedir?

Bir hata kayıt sistemi, yazılım uygulamalarında meydana gelen hataların, uyarıların ve diğer önemli olayların kaydedildiği bir sistemdir. Bu kayıtlar genellikle dosyalar, veritabanları veya merkezi log yönetim sistemlerinde tutulur. Hata kaydı tutmanın sağladığı faydalar:

1 - Hataların hızlı tespiti ve düzeltilmesi.

2 - Performans sorunlarının izlenmesi.

3 - Güvenlik ihlallerinin tespiti.

4 - Sistemdeki hataların tarihçesi.

5 - Hata kaydında genellikle zaman damgası, hata türü, mesaj ve ek bilgiler yer alır.

Python ile Hata Kayıt Sistemi

Python'da hata kaydı tutmak için logging modülü kullanılır. Bu modül, hata kaydını, bilgi mesajlarını, uyarıları ve kritik hataları kaydetmek için güçlü bir araçtır.

Python Hata Kayıt Sistemi

1import logging
2
3Log yapılandırması
4
5logging.basicConfig(filename='hatalar.log',
6level=logging.DEBUG, # En düşük seviye: DEBUG
7format='%(asctime)s - %(levelname)s - %(message)s')
8
9try:
101 / 0 # Hata oluşturuluyor (ZeroDivisionError)
11except ZeroDivisionError as e:
12logging.error(f"Hata oluştu: {e}")
13
14logging.info("Uygulama başarıyla başlatıldı.")
15logging.warning("Bu bir uyarıdır.")
Python'da logging modülü ile farklı hata seviyeleri tanımlanabilir: DEBUG, INFO, WARNING, ERROR, CRITICAL.

Python Log Dosyasından Veri Okuma

1with open("hatalar.log", "r") as dosya:
2loglar = dosya.readlines()
3for log in loglar:
4print(log.strip())

PHP ile Hata Kayıt Sistemi

PHP'de hata kaydı tutmak için error_log() fonksiyonu kullanılır. Bu fonksiyonla hatalar dosyaya veya bir hata izleme servisine yönlendirilebilir.

PHP Hata Kayıt Sistemi

1<?php // Log dosyasına yazma error_log("Uygulama başlatıldı", 3, "hatalar.log"); // Hata kaydını log dosyasına yazma try { $result = 1 / 0; // Hata oluşturuluyor (Division by zero) } catch (Exception $e) { error_log("Hata oluştu: " . $e->getMessage(), 3, "hatalar.log"); } // Genel uyarı error_log("Bu bir uyarıdır", 3, "hatalar.log"); ?>
PHP'de error_log() fonksiyonu, logları özel bir dosyaya yazmak için 3 parametresi ile kullanılır. Ayrıca PHP hata ayıklamayı etkinleştirmek için ini_set('log_errors', 1); komutunu kullanabilirsiniz.

PHP Log Dosyasını Okuma

1<?php $loglar = file("hatalar.log"); foreach ($loglar as $log) { echo $log . "<br>"; } ?>

ASP (Classic ASP) ile Hata Kayıt Sistemi

Classic ASP, yerleşik bir hata kayıt fonksiyonu sunmasa da, dosya işlemleri ile kolayca hata kayıtları tutulabilir.

ASP Hata Kayıt Sistemi

1<%
2On Error Resume Next ' Hataları yakala
3
4' Hata oluştuğunda log dosyasına yaz
5Dim hataMesaji
6If Err.Number <> 0 Then
7hataMesaji = Now() & " - Hata oluştu: " & Err.Description
8Set fso = Server.CreateObject("Scripting.FileSystemObject")
9Set dosya = fso.OpenTextFile(Server.MapPath("hatalar.log"), 8, True)
10dosya.WriteLine(hataMesaji)
11dosya.Close
12Err.Clear()
13End If
14
15' Bilgi mesajı
16Set fso = Server.CreateObject("Scripting.FileSystemObject")
17Set dosya = fso.OpenTextFile(Server.MapPath("hatalar.log"), 8, True)
18dosya.WriteLine(Now() & " - Uygulama başlatıldı")
19dosya.Close
20%>
Classic ASP'de On Error Resume Next komutu ile hatalar yakalanabilir ve Err.Description ile hata mesajları alınabilir. Hatalar dosyaya kaydedilir.

Hata Kayıt Sisteminin Temel Bileşenleri

Bir hata kayıt sistemi kurarken dikkat edilmesi gereken bazı temel bileşenler şunlardır:

1. Log Seviyeleri

DEBUG: Detaylı hata ayıklama bilgisi, genellikle geliştirme sürecinde kullanılır.

INFO: Genel bilgi mesajları, uygulama başlangıcı veya önemli işlem başarıları.

WARNING: Dikkate alınması gereken durumlar, ancak sistemin çalışmasını etkilemeyen durumlar.

ERROR: Uygulamanın beklenmedik şekilde çalışmasını engelleyen hatalar.

CRITICAL: Uygulamanın çalışmasını tamamen durduran ciddi hatalar.

2. Log Formatı

Tarih/Saat: Olayın ne zaman gerçekleştiği.

Hata Seviyesi: Hata türü (DEBUG, ERROR, vs.).

Mesaj: Hata açıklaması veya bilgi mesajı.

Stack Trace: Hata oluştuğunda çağrı yığını (gelişmiş hata ayıklama).

3. Log Dosyası Yönetimi

Log dosyalarının büyüklüğü zamanla artabilir. Bu nedenle:

1 - Günlük veya haftalık olarak döndürme.

2 - Dosyaların sıkıştırılması.

3 - Eski logların arşivlenmesi veya silinmesi.




konu hakkında tepkinizi verebilirsiniz