dictConfig
- Python kursu
- İleri seviye
- Ders 71/83
- 5 dk
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
# 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
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
import logging.config
logging.config.____(config)
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 |