CodeBlanks Logo Icon CodeBlanks

dictConfig

logging.config.dictConfig ile gelişmiş yapılandırmayı öğrenirsin.

dictConfig

logging.config.dictConfig, bir sözlükten karmaşık günlükleme yapılandırması kurar. İşleyiciler, biçimler ve günlükleyiciler ayrı ayrı tanımlanır; bu, dosyadan yüklenen yapılandırmayla çalışmaya uygundur.

import logging.config

config = {
    "version": 1,
    "formatters": {"simple": {"format": "%(levelname)s:%(message)s"}},
    "handlers": {"console": {"class": "logging.StreamHandler", "formatter": "simple"}},
    "loggers": {"myapp": {"handlers": ["console"], "level": "DEBUG"}},
}
logging.config.dictConfig(config)

version: 1 her zaman verilir. Sözlük yapısı, birden çok günlükleyici ve işleyiciyi tek yerden yönetmeyi sağlar.

sözlük bölümleri

dictConfig sözlüğü dört ana bölüm içerir: formatters (biçimler), handlers (işleyiciler), loggers (günlükleyiciler) ve root (kök). Her bölüm bir sözlükler sözlüğüdür.

config = {
    "version": 1,
    "formatters": {"simple": {...}},
    "handlers": {"console": {...}},
    "loggers": {"myapp": {...}},
}

İşleyici, biçime adıyla başvurur; günlükleyici, işleyiciye adıyla başvurur. Bu, bileşenleri yeniden kullanılabilir kılar.

Uygulama dictConfig ile günlük yaz

import logging.config ile başla. config adında bir sözlük tanımla: "version": 1, "formatters": {"simple": {"format": "%(levelname)s:%(message)s"}}, "handlers": {"console": {"class": "logging.StreamHandler", "formatter": "simple"}}, "loggers": {"myapp": {"handlers": ["console"], "level": "DEBUG"}}. logging.config.dictConfig(config) çağrısı yap. logger = logging.getLogger("myapp") ile günlükleyici al. import logging satırını da ekle. logger.info("merhaba") yaz.

Başlangıç kodu

main.py
# logging.config ve logging modüllerini içe aktar
# config sözlüğü tanımla: version, formatters, handlers, loggers
# dictConfig ile yapılandırmayı yükle
# 'myapp' günlükleyicisini al
# info ile 'merhaba' yaz

Örnek çözüm

main.py
import logging
import logging.config

config = {
    "version": 1,
    "formatters": {"simple": {"format": "%(levelname)s:%(message)s"}},
    "handlers": {"console": {"class": "logging.StreamHandler", "formatter": "simple"}},
    "loggers": {"myapp": {"handlers": ["console"], "level": "DEBUG"}},
}
logging.config.dictConfig(config)
logger = logging.getLogger("myapp")
logger.info("merhaba")

Beklenen çıktı

INFO:merhaba

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 dictConfig çağrısını tamamla

Soru
import logging.config

logging.config.____(config)
Cevap
import logging.config

logging.config.dictConfig(config)

Açıklama: logging.config.dictConfig(config) ile yapılandırma yüklenir.

2 dictConfig sözlüğünde 'version' anahtarı ne yapar?

  • Günlükleyici adını belirtir
  • Yapı sürümünü belirtir Doğru cevap
  • Dosya yolunu belirtir
  • Düzeyi belirtir

Açıklama: version anahtarı yapılandırma sürümünü belirtir; genelde 1 verilir.

3 dictConfig kavramlarını eşleştir

Kavram Anlamı
version Sürümü belirtir
formatters Biçimleri tanımlar
handlers İşleyicileri tanımlar
loggers Günlükleyicileri tanımlar

İleri seviye bölümündeki tüm dersler