{% extends "admin/base_site.html" %} {% load i18n %} {% block title %}Merkezi Loglama Sistemi Testi{% endblock %} {% block content %}
Bu sayfa, django-log-hub modülünün merkezi loglama özelliklerini test etmenizi sağlar.
Özellik: Tüm adımlar listede toplanır, return'dan önce tek satırda kaydedilir, HTML'de alt alta görünür.
Dosya Davranışı: Her fonksiyon çağrısı aynı dosyaya alt satıra eklenir, önceki loglar silinmez.
from log_hub.services import DynamicLogger
# Tüm adımlar tek seferde kaydedilir
with DynamicLogger("Veri İşleme", user_id="123") as logger:
logger.step("Veri Okuma", {"file": "data.csv"})
logger.step("Veri Doğrulama", {"records": 1000})
logger.step("Veri İşleme", {"algorithm": "ml_model"})
logger.warning("Eksik veri tespit edildi", {"missing_count": 5})
# Return'dan önce tüm loglar tek satırda kaydedilir
result = logger.finish()
from log_hub.services import log_step, log_info, log_warning, log_error, finish_logging
# Adım adım log toplama
log_step("İşlem başladı", {"user_id": "123"})
log_info("Veri okundu")
log_step("Veri işlendi", {"data_size": 1000})
log_warning("Eksik veri tespit edildi")
log_error("Hata oluştu")
finish_logging()
from log_hub.services import aggregated_log
@aggregated_log("Kullanıcı İşlemi")
def process_user_data(user_id, data):
# Bu fonksiyon otomatik olarak merkezi loglama ile loglanacak
# Tüm adımlar tek satırda kaydedilecek ama HTML'de alt alta görünecek
result = {"status": "processed", "user_id": user_id}
return result
# Kullanım
result = process_user_data("123", {"name": "John"})
from log_hub.services import DynamicLogger
from django.http import JsonResponse
def api_endpoint(request):
# user_id otomatik olarak request.user.username'den alınır
with DynamicLogger("API İşlemi", user_id=request.user.username) as logger:
logger.step("Request alındı", {"method": request.method, "path": request.path})
logger.step("Parametreler doğrulanıyor", {"params": request.data})
logger.step("Veritabanı sorgusu yapılıyor", {"query": "SELECT * FROM users"})
logger.step("İş mantığı çalıştırılıyor", {"business_logic": "kullanıcı güncelleme"})
logger.step("Response hazırlanıyor", {"status_code": 200, "content_type": "application/json"})
result = {"status": "success"}
return JsonResponse(result)
from log_hub.services import log_step, log_info, log_warning, log_error, finish_logging
def to_representation(self, instance):
log_step("Starting data processing", {"shipment_id": instance.id})
if instance.src_station:
representation['src_station'] = StationSerializer(instance.src_station).data
log_step("src_station processed", {"station_id": instance.src_station.id})
if instance.dst_station:
representation['dst_station'] = StationSerializer(instance.dst_station).data
log_step("dst_station processed", {"station_id": instance.dst_station.id})
log_step("items processed", {"item_count": instance.shipment_items.count()})
finish_logging()
return representation