FileHandler
- Python kursu
- İleri seviye
- Ders 70/83
- 5 dk
FileHandler ile dosyaya yazmayı öğrenirsin.
FileHandler
logging.FileHandler, günlükleri bir dosyaya yazar. filename parametresi dosya yolunu alır; günlükleyiciye addHandler ile eklenir.
import logging
handler = logging.FileHandler("app.log")
handler.setFormatter(logging.Formatter("%(levelname)s:%(message)s"))
logger = logging.getLogger("myapp")
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.info("merhaba") # app.log'a yazılırDosya yolunu uygulama dizinine göre verebilirsin; uygulama her çalıştığında günlükler dosyada birikir.
işleyici ekleme
İşleyici, logger.addHandler(handler) ile günlükleyiciye eklenir. Bir günlükleyiciye birden çok işleyici eklenebilir; örneğin hem dosyaya hem ekrana yazmak için iki işleyici kullanırsın.
logger.addHandler(logging.FileHandler("app.log"))
logger.addHandler(logging.StreamHandler())İşleyicilerin düzeyleri ayrı ayrı ayarlanabilir; bu, ekrana yalnızca hataları, dosyaya tüm iletileri yazmak için kullanışlıdır. İşleyiciyi kaldırmak için removeHandler çağrılır.
Uygulama FileHandler ile dosyaya yaz ve oku
import logging ile başla. handler = logging.FileHandler("app.log") tanımla. handler.setFormatter(logging.Formatter("%(levelname)s:%(message)s")) ekle. logger = logging.getLogger("myapp") al. logger.addHandler(handler) ve logger.setLevel(logging.DEBUG) yap. logger.info("merhaba") yaz. Sonra open("app.log", "r", encoding="utf-8") ile dosyayı oku ve print(f.read().strip()) ile içeriği yazdır.
Başlangıç kodu
# logging modülünü içe aktar
# 'app.log' dosyasına bir FileHandler tanımla
# işleyiciye biçim ver (level:message)
# 'myapp' günlükleyicisini al, işleyici ekle ve düzey DEBUG yap
# info ile 'merhaba' yaz
# dosyayı oku ve içeriğini yazdırÖrnek çözüm
import logging
handler = logging.FileHandler("app.log")
handler.setFormatter(logging.Formatter("%(levelname)s:%(message)s"))
logger = logging.getLogger("myapp")
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.info("merhaba")
with open("app.log", "r", encoding="utf-8") as f:
print(f.read().strip())Beklenen çıktı
INFO:merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 FileHandler hangi parametreyle dosya yolunu alır?
- output
- path
- file
- filename Doğru cevap
Açıklama: FileHandler ilk parametre olarak dosya yolunu alır (filename).
2 FileHandler çağrısını tamamla
import logging
handler = logging.____("app.log")
import logging
handler = logging.FileHandler("app.log")
Açıklama: logging.FileHandler('app.log') ile dosya işleyici oluşturulur.
3 FileHandler kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
FileHandler |
Dosyaya yazar |
addHandler |
İşleyici ekler |
setFormatter |
Biçim ayarlar |
StreamHandler |
Ekrana yazar |