Python Logging Set Level: Tam Kontrol İçin Rehber

Python’da Logging Modülüne Giriş

Python programlama dilinde hata ayıklama ve uygulama izleme süreçlerini kolaylaştıran önemli bir araç, logging modülüdür. Python standart kütüphanesi içinde yer alan bu modül, uygulama içerisindeki olayların kaydedilmesini sağlar. Geliştiricilerin uygulamalarının durumunu analiz etmelerine, hataları tespit etmelerine ve performansı iyileştirmelerine yardımcı olur. Logging modülü, olayların önem derecesine göre kategorilere ayrılmasına olanak tanır; bu sayede geliştiriciler, hangi seviyedeki logların gösterileceğini belirleyebilirler.

Logging modülüyle birlikte gelen olay seviyeleri şunlardır: DEBUG, INFO, WARNING, ERROR ve CRITICAL. Her bir seviye, log girdilerinin önem derecesini temsil eder. Örneğin, DEBUG en düşük seviye iken, CRITICAL en yüksek seviye olarak kabul edilir. Bu yapı, hataların ve kritik olayların hızlı bir şekilde tespit edilmesine olanak tanır; dolayısıyla uygulama geliştirme sürecinde oldukça önemlidir.

Bu yazıda, Python’daki logging modülünü kurma, yapılandırma ve özel log seviyeleri tanımlama konusunda kapsamlı bir rehber sunacağız. Ayrıca, logging seviyelerini ayarlayarak uygulamanızda nasıl tam kontrol sağlayabileceğinizi göstereceğiz.

Python Logging Başlangıç Ayarları

Logging modülünü kullanmaya başlamak için öncelikle modülü içe aktarmamız gerekmektedir. Basit bir logging örneğiyle başlayalım:

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('Debug mesajı')
logging.info('Info mesajı')
logging.warning('Warning mesajı')
logging.error('Error mesajı')
logging.critical('Critical mesajı')

Yukarıdaki örnekte, basicConfig() fonksiyonu kullanılarak logging sistemi yapılandırılmıştır. level parametresi, hangi seviyedeki logların konsola yazdırılacağını belirler. Bu örnekte, en düşük seviye olan DEBUG seviyesinden başlayarak, daha yüksek seviyedeki tüm logların yazdırılmasını sağladık.

Bu temel yapılandırma ile birlikte, uygulamanızın farklı kısımlarında log mesajları oluşturabilirsiniz. Örneğin, veri işleme sürecinde hata oluştuğunda ERROR seviyesini kullanarak bir mesaj gönderebilir, normal bir durum olduğunda INFO seviyesini tercih edebilirsiniz.

Log Seviyeleri ve Kullanım Senaryoları

Log seviyeleri, geliştiricilere ve ekiplerine hangi olayların ne kadar önemli olduğunu belirleme olanağı sunar. Bu seviyeleri doğru kullanmak, özellikle büyük ve karmaşık projelerde hayati önem taşır.

DEBUG: En düşük seviye olan DEBUG, genellikle uygulamanın çalışma sürecinde ne olduğunu izlemek için kullanılır. Geliştiriciler, uygulamanın her bir adımını detaylı bir şekilde gözlemleyebilirler. Örneğin, bir fonksiyon çağrısından sonra hangi verilerin döndüğünü görmek için DEBUG seviyesinde loglama yapılabilir.

INFO: Bilgilendirici mesajlar için kullanılır. Uygulamanın doğru bir şekilde çalıştığını kanıtlayan mesajlar içerir. Örneğin, bir kullanıcı başarıyla giriş yaptığında bu durum INFO seviyesinde loglanabilir.

WARNING: Uygulamanın normal işleyişinin dışında bir durum yaşandığında kullanılır. Önemli olsa da kritik bir durum değildir. Örneğin, bir dosyanın yüklenemediği ancak uygulamanın devam edebileceği durumlar WARNING olarak loglanabilir.

ERROR: Bir hata meydana geldiğinde, uygulamanın belirli bir fonksiyonunun çalışmadığını belirtir. Burada olayın çözülmesi gerekebilir. Örneğin, bir veritabanı bağlantısı sağlanamadığında ERROR seviyesinde bir log mesajı yazdırılır.

CRITICAL: En yüksek seviye olan CRITICAL, uygulamanın işlemeye devam edemeyeceği durumları ifade eder. Örneğin, sistemin bozulması durumunda bu seviye kullanılır.

Log Seviyesini Ayarlamak

Logging modülü ile log seviyesini ayarlamak oldukça basittir. setLevel() metodu, logger nesnesinin seviye ayarını değiştirmek için kullanılır. Bu işlem, programın herhangi bir yerinde uygulanabileceği gibi, uygulamanın başında da yapılabilir. Aşağıda bu işlemi göstermekteyiz:

logger = logging.getLogger('my_logger')
logger.setLevel(logging.WARNING)

logger.debug('Bu mesaj görünmeyecek')
logger.info('Bu mesaj da görünmeyecek')
logger.warning('Bu mesaj görünecek')
logger.error('Bu mesaj da görünecek')

Yukarıdaki örnekte, my_logger adında bir logger tanımlanmış ve seviye WARNING olarak ayarlanmıştır. Bu durumda yalnızca WARNING, ERROR ve CRITICAL seviyesindeki mesajlar görünür. Bu sayede, uygulama hatalarını ve dikkat edilmesi gereken durumları öne çıkarmış oluyoruz.

Bu özellik, uygulama geliştirirken log yoğunluğunu kontrol altında tutmanıza yardımcı olur ve gereksiz bilgi yığınından sizi kurtarır. Özellikle üretim aşamasındaki uygulamalarınızda hangi seviyedeki logları görmek istediğinizi sıkı bir şekilde belirlemek, hem performans hem de hata ayıklama açısından faydalıdır.

Kendi Log Seviyelerinizi Oluşturma

Python’daki logging modülü, ön tanımlı seviyeler dışında kendi log seviyelerinizi tanımlamanıza da izin verir. Bu, uygulamanızın ihtiyaçlarına uygun özel bir log düzeyi oluşturmak için yararlıdır. Kendi log seviyenizi tanımlamak şöyle yapılır:

LOG_LEVEL_CUSTOM = 25
logging.addLevelName(LOG_LEVEL_CUSTOM, 'CUSTOM')

logger.log(LOG_LEVEL_CUSTOM, 'Bu, özel seviye bir mesajdır!')

Yukarıdaki örnekte, 25 seviyesinde CUSTOM adında yeni bir seviye tanımlanmış ve loglanmıştır. addLevelName() fonksiyonu ile yeni seviyenizin adını tanımlama işlemini gerçekleştirirsiniz. Bu şekilde, uygulamanızın özgün ihtiyaçlarına uygun log seviyeleri oluşturabilirsiniz.

Kendi log seviyelerini oluşturmak, bakım süreçlerinde ve izleme işlemlerinde daha fazla esneklik sağlar. Uygulamanızın gereksinimlerine göre özelleştirilmiş log düzeyleri ile, hangi durumların önemli olduğunu daha iyi yönetebilirsiniz.

Özet ve Sonuç

Python’da logging modülü, uygulamanızın durumunu daha iyi anlamanıza ve hataları daha hızlı çözmenize yardımcı olur. Log seviyelerini etkili bir şekilde kullanarak, uygulamanızda tam kontrol sağlamanız mümkündür. DEBUG, INFO, WARNING, ERROR ve CRITICAL gibi ön tanımlı seviyeler, uygulamanızın olaylarını anlamanızı kolaylaştırırken, kendi seviyelerinizi oluşturma yeteneği ile esnekliğinizi artırır.

Bu yazıda, Python logging set level ile ilgili detaylı bilgi verdik. Logging seviyelerini oluşturma, ayarlama ve etkili biçimde kullanma konularında, geliştiricilerin yararlanabileceği pek çok ipucu sunduk. Unutmayın ki, etkili logging uygulamanızın kalitesini ve sürdürülebilirliğini artıran önemli bir faktördür.

Şimdi, öğrendiklerinizi kendi projelerinizde uygulamaya geçirme zamanı! Uygulama ve logging süreçlerinizi nasıl geliştirebileceğinizi düşünün. İyi bir logging stratejisi, sorunları hızlıca tespit etmenizi sağlayacak ve yazılım geliştirme sürecini daha verimli hale getirecektir.

Scroll to Top