iToverDose/Yazılım· 24 MAYIS 2026 · 04:00

Flask Uygulamalarında Yapılandırılmış Günlüğe Kayıt

Flask uygulamalarında yapılandırılmış günlüğe kaydı kullanmak, hata ayıklamayı hızlandırır ve günlüklerin daha anlaşılır olmasını sağlar.

DEV Community1 dk okuma0 Yorumlar

Flask uygulamalarının yaklaşık %80'i hala üretim ortamlarında temel print() deyimleri veya yapılandırılmamış logging.info() çağrılarını kullanıyor. Modern izleme araçlarının yaygın olarak benimsenmesine rağmen, birçok Python web uygulaması günlüklerini düz metin olarak gönderiyor. Bu, hata ayıklamayı yavaşlatıyor, filtrelemeyi güvensiz hale getiriyor ve uyarıları kırılgan yapıyor.

Yapılandırılmış Günlüğe Kayıt

Yapılandırılmış günlüğe kaydetmek, her günlükte belirli bir yapıya sahip olmasını sağlar. Bu, günlüklerin daha anlaşılır olmasını ve daha kolay filtrelenmesini sağlar. Python'da logging modülü, yapılandırılmış günlüğe kaydetmek için kullanılır.

import logging
import json
import sys
class JsonFormatter(logging.Formatter):
    def format(self, record):
        log_entry = {
            "timestamp": self.formatTime(record, self.datefmt),
            "level": record.levelname,
            "logger": record.name,
            "module": record.module,
            "function": record.funcName,
            "line": record.lineno,
            "message": record.getMessage(),
        }
        if record.exc_info:
            log_entry["exception"] = self.formatException(record.exc_info)
        return json.dumps(log_entry)

Loguru

Loguru, yapılandırılmış günlüğe kaydetmek için daha basit ve daha ifade edici bir kurulum sunar. Loguru'nun temel soyutlaması, günlük olaylarının genel bir hedefi olan sink'tir. Sink'ler, akışlar, dosyalar veya ağ uç noktaları olabilir ve her biri kendi formatı, filtresi ve seri hale getirme mantığını sahip olabilir.

from loguru import logger
import sys
import json
#Varsayılan işleyiciyi kaldır
logger.remove()
#JSON sink ekleyin
logger.add(
    sys.stdout,
    format=lambda record: json.dumps({
        "time": record["time"].isoformat(),
        "level": record["level"].name,
        "message": record["message"],
        "module": record["module"],
        "function": record["function"],
        "line": record["line"],
        **record["extra"]
    }),
    level="INFO"
)

Gelecekte, yapılandırılmış günlüğe kaydetmenin Flask uygulamalarında daha yaygın olarak benimseneceğini umuyoruz. Bu, hata ayıklamayı hızlandıracağı ve günlüklerin daha anlaşılır olmasını sağlayacaktır.

Yapay zeka özeti

Flask uygulamalarında yapılandırılmış günlüğe kaydetmek, hata ayıklamayı hızlandırır ve günlüklerin daha anlaşılır olmasını sağlar.

Yorumlar

00
YORUM BIRAK
ID #6LD3L8

0 / 1200 KARAKTER

İnsan doğrulaması

8 + 4 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.