📜 Raporlama İşlemleri

Python ile raporlama (logging) işlemleri ve logging modülünün kullanımı

🏂 Raporlamaya Giriş

  • 📦 Raporlama işlemleri için logging modülü kullanır

  • 🍱 Python içerisinde hazır olarak bulunan bir modüldür, indirmeye gerek yok

  • 📜 logging modülü print yapısından daha kullanışlıdır

  • 👮‍♂️ Raporlama seviyeleri ile isteğe bağlı çıktılar verilir

  • 🙄 print metodu olsaydı if koşulları ile yapmamız gerekirdi

🎌 Temel Kullanım

  • 🔨 Yapılandırma ayarları logging.basicConfig metodu ile düzenlenir

  • 💎 format ile çıktıların yapısı, level ile çıktıların sınırı belirlenir

  • 🚀 logging.getLogger metodu __name__ ile kullanıldığında, dosya ismine ait bir raporlayıcı oluşturur

import logging
log_format = (
'%(asctime)s - '
'%(name)s - '
'%(funcName)s - '
'%(levelname)s - '
'%(message)s'
)
log_level = logging.DEBUG
logging.basicConfig(format=log_format , level=log_level )
logger = logging.getLogger(__name__)

📢 logging modülü globaldir, her dosya için ortak login yapısı kullanılır

📂 Dosyaya Raporlama

import logging
message = "Raporlanacak"
LOG_DIR = "dosya/dizini"
LOG_FILE = "dosya.log"
FLAG = "w" # a+, r
ENCODING = "utf-8"
# Rapolamayı tanımlama
logging.basicConfig(
handlers=[logging.FileHandler(LOG_DIR + LOG_FILE, FLAG, ENCODING)],
level=logging.DEBUG,
format='%(asctime)s: %(message)s'
)
logging.info("mesaj") # Raporu yazma

🎨 Renkli Raporlama

  • 📦 Renkli raporlama için coloredlogs modülü kullanılır

  • ⏬ Yüklemek için pip install coloredlogs komutunu kullanın

  • 💡 Renklendirme için standart konsol renk komutlarını kullanır

  • 👨‍🔧 Renklendirme çalışmazsacolorama modülünü yükleyin

  • ⏬ Yüklemek için pip install colorama komutunu kullanın3

import coloredlogs
import logging
# Logger objesi oluşturma
logger = logging.getLogger(__name__)
# Tüm raporlama işlemlerinin renkli olmasını sağlar
coloredlogs.install(level='DEBUG')
# Sadece verilen logger'ın renkli olmasını sağlar
coloredlogs.install(level='DEBUG', logger=logger)
# Formatı değiştirme
log_format = ""
+ "%(asctime)s,%(msecs)03d %(hostname)s %(name)s[%(process)d] "
+ "%(levelname)s %(message)s"
coloredlogs.install(level='DEBUG', fmt=log_format)
# Örnekler
logger.debug("this is a debugging message")
logger.info("this is an informational message")
logger.warning("this is a warning message")
logger.error("this is an error message")
logger.critical("this is a critical message")

‍🧙‍♂ Detaylı bilgi için coloredlogs alanına bakabilirsin.

🔗 Faydalı Bağlantılar

🚀 Bu alandaki bağlantılar YEmoji ~Bağlantılar yapısına uygundur