logging — olay günlükleme¶
Bu modül, standart Python logging paketinin MicroPython için uyarlanmış hafif bir alt kümesini sağlar. Hiyerarşik olarak adlandırılmış Logger nesneleri aracılığıyla seviyeli günlüklemeyi, küçük bir işleyici kümesini (StreamHandler, FileHandler), Formatter aracılığıyla printf tarzı biçimlendirmeyi ve kök günlükleyici üzerinde çalışanlara eşdeğer modül düzeyinde kolaylık fonksiyonlarını destekler.
Modül, bilinen CPython API’sini yeterince yakından takip eder; öyle ki standart kütüphane için yazılmış basit uygulamalar değişiklik gerektirmeden çalışmalıdır. Filtreler, çok süreçli kilitleme, yapılandırma dosyası biçimi ve çoğu işleyici sınıfı sağlanmaz.
Seviye Sabitleri¶
Fonksiyonlar¶
- logging.getLogger(name: str | None = None) Logger¶
name altında kayıtlı
Loggernesnesini döndürür, ilk kullanımda oluşturur. nameNoneise kök günlükleyici döndürülür.name="root"ile (veya name belirtilmeden) yapılan ilk çağrı,sys.stderradresine yazan varsayılan birStreamHandlereklemek için örtük olarakbasicConfigçağırır.
- logging.log(level: int, msg: str, *args) None¶
Kök günlükleyici üzerinde level seviyesinde bir mesaj günlükler. args, printf tarzı
%biçimlendirmesi kullanılarak msg içine yerleştirilir; tek bir sözlük argümanı eşleme olarak kullanılır.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
getLogger().exception(msg, *args, exc_info=exc_info)ile eşdeğerdir. MesajıERRORseviyesinde günlükler ve exc_info doğruysa ek olarak etkin istisnanın geri izlemesini biçimlendirir. exc_info kendisi birBaseExceptionise, o istisnanın geri izlemesi kullanılır; aksi takdirde mevcut olduğundasys.exc_info()başvurulur.
- logging.shutdown() None¶
Bilinen her günlükleyiciye eklenmiş her işleyiciyi kapatır ve günlükleyicileri unutur. Bu kanca mevcut olduğunda
sys.atexitaracılığıyla otomatik olarak kaydedilir.
- logging.addLevelName(level: int, name: str) None¶
Formatternesnesinin bunu%(levelname)saracılığıyla işleyebilmesi için metinsel name ile sayısal level değerini ilişkilendirir.
- logging.basicConfig(filename: str | None = None, filemode: str = 'a', format: str | None = None, datefmt: str | None = None, level: int = WARNING, stream=None, encoding: str = 'UTF-8', force: bool = False) None¶
Kök günlükleyiciyi tek bir işleyici ile yapılandırır.
filename sağlanırsa filemode ve encoding kullanılarak bir
FileHandleroluşturulur; aksi takdirde stream adresine yazan (varsayılan olaraksys.stderr) birStreamHandlerkullanılır.format ve datefmt, yeni bir
Formatternesnesine aktarılır.level, hem işleyicinin seviyesini hem de kök günlükleyicinin seviyesini ayarlar.
Kök günlükleyicinin zaten işleyicileri varsa, force
Trueolmadıkça bu fonksiyon hiçbir işlem yapmaz; bu durumda mevcut işleyiciler kapatılır ve değiştirilir.
Sınıflar¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Adlandırılmış bir günlükleyici. Günlükleyicileri doğrudan oluşturmak yerine
getLoggeraracılığıyla oluşturun; böylecegetLogger, aynı ad için aynı örneği döndürebilir.- handlers: list¶
Bu günlükleyiciye eklenmiş
Handlerörneklerinin listesi. Boş olduğunda mesajlar kök günlükleyicinin işleyicilerine gönderilir.
- isEnabledFor(level: int) bool¶
level seviyesindeki bir mesaj bu günlükleyici tarafından işlenecekse
Truedöndürür.
- getEffectiveLevel() int¶
Şunlardan sıfır olmayan ilkini döndürür: bu günlükleyicinin seviyesi, kök günlükleyicinin seviyesi veya
WARNING.
- log(level: int, msg: str, *args) None¶
msg mesajını level seviyesinde günlükler. args,
%operatörü ile msg içine yerleştirilir; ilk konumsal argüman bir sözlük ise eşleme olarak kullanılır.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
msg mesajını
ERRORseviyesinde günlükler ve exc_info doğruysa biçimlendirilmiş geri izlemeyi ekler. exc_info birBaseExceptionörneği ise o istisnanın geri izlemesi işlenir; aksi takdirde etkin istisnayasys.exc_info()aracılığıyla başvurulur.
- class logging.Handler(level: int = NOTSET)¶
Tüm işleyiciler için temel sınıf. Alt sınıflar
emit()yöntemini uygular.- close() None¶
İşleyici tarafından tutulan kaynakları serbest bırakır.
shutdowntarafından veFileHandlerkapatıldığında çağrılır.
- class logging.StreamHandler(stream=None)¶
Biçimlendirilmiş kayıtları, ardından
self.terminator(varsayılan olarak"\n") ile stream adresine yazan işleyici. stream varsayılan olaraksys.stderrdeğerini alır.- stream¶
Hedef akış nesnesi.
- terminator: str¶
Her biçimlendirilmiş kaydın ardına eklenen dize. Varsayılan olarak
"\n"değerini alır.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
filename dosyasını verilen mode ve encoding ile açan ve biçimlendirilmiş kayıtları ona yazan
StreamHandleralt sınıfı. Alttaki dosyaclose()çağrısında kapatılır.
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
LogRecordörneklerini dizelere işler.fmt printf tarzı bir şablondur. Tanınan anahtarlar
%(name)s,%(message)s,%(msecs)d,%(asctime)sve%(levelname)sdeğerleridir. Ayarlanmadığında varsayılan olarak"%(levelname)s:%(name)s:%(message)s"değerini alır.datefmt,
%(asctime)sdeğerini işlemek için kullanılantime.strftimeşablonudur. Varsayılan olarak"%Y-%m-%d %H:%M:%S"değerini alır.- formatTime(datefmt: str, record: LogRecord) str | None¶
record.ctdeğerinitime.strftimeve datefmt kullanarak biçimlendirir.time.strftimemevcut olmayan platformlardaNonedöndürür.
- format(record: LogRecord) str¶
record nesnesini işler. Şablon
asctimekullanıyorsa,record.asctimedeğerini doldurmak için önceformatTime()çağrılır.
- class logging.LogRecord¶
Bir
Loggernesnesinden işleyicilerine aktarılan veriler için kapsayıcı. Örneklerset()aracılığıyla doldurulur; günlükleyici uygulamaları, ayırmaları azaltmak için günlükleyici başına tek bir kaydı yeniden kullanır.