logging — bilježenje događaja¶
Ovaj modul pruža lagani podskup standardnog Python paketa logging prilagođen za MicroPython. Podržava bilježenje po razinama putem hijerarhijski imenovanih objekata Logger, mali skup rukovatelja (StreamHandler, FileHandler), oblikovanje u stilu printf putem Formatter te pomoćne funkcije na razini modula koje su istovjetne onima koje rade nad korijenskim loggerom.
Modul dovoljno blisko prati poznati CPython API tako da bi jednostavne aplikacije napisane za standardnu biblioteku trebale raditi bez izmjena. Filtri, zaključavanje za više procesa, format konfiguracijske datoteke i većina klasa rukovatelja nisu dostupni.
Konstante razina¶
Funkcije¶
- logging.getLogger(name: str | None = None) Logger¶
Vraća
Loggerregistriran pod name, stvarajući ga pri prvom korištenju. Ako je nameNone, vraća se korijenski logger. Prvi poziv sname="root"(ili s nepostavljenim name) implicitno pozivabasicConfigkako bi priložio zadaniStreamHandlerkoji piše usys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Bilježi poruku na razini level na korijenskom loggeru. args se umeću u msg pomoću oblikovanja u stilu printf s
%; pojedinačni rječnik kao argument koristi se kao preslikavanje.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Istovjetno
getLogger().exception(msg, *args, exc_info=exc_info). Bilježi poruku na raziniERRORi dodatno oblikuje trag (traceback) aktivne iznimke kada je exc_info istinit. Ako je exc_info sam po sebiBaseException, koristi se trag te iznimke; u suprotnom se konzultirasys.exc_info()kada je dostupan.
- logging.shutdown() None¶
Zatvara svaki rukovatelj priložen svakom poznatom loggeru i zaboravlja loggere. Registrira se automatski putem
sys.atexitkada je ta kuka dostupna.
- logging.addLevelName(level: int, name: str) None¶
Pridružuje tekstualni name numeričkoj razini level tako da ga
Formattermože prikazati putem%(levelname)s.
- 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¶
Konfigurira korijenski logger s jednim rukovateljem.
Ako je naveden filename, stvara se
FileHandlerkoristeći filemode i encoding; u suprotnom se koristiStreamHandlerkoji piše u stream (zadanosys.stderr).format i datefmt prosljeđuju se novom
Formatter.level postavlja i razinu rukovatelja i razinu korijenskog loggera.
Ako korijenski logger već ima rukovatelje, ova funkcija nema učinka osim ako je force
True, u kojem se slučaju postojeći rukovatelji zatvaraju i zamjenjuju.
Klase¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Imenovani logger. Loggere konstruirajte putem
getLogger, a ne izravno, tako dagetLoggermože vratiti istu instancu za isto ime.- handlers: list¶
Popis instanci
Handlerpriloženih ovom loggeru. Kada je prazan, poruke se prosljeđuju rukovateljima korijenskog loggera.
- getEffectiveLevel() int¶
Vraća prvu vrijednost koja nije nula od: razine ovog loggera, razine korijenskog loggera ili
WARNING.
- log(level: int, msg: str, *args) None¶
Bilježi msg na razini level. args se umeću u msg pomoću operatora
%; ako je prvi pozicijski argument rječnik, koristi se kao preslikavanje.
- class logging.Handler(level: int = NOTSET)¶
Bazna klasa za sve rukovatelje. Podklase implementiraju
emit().- close() None¶
Oslobađa resurse koje drži rukovatelj. Poziva ga
shutdownteFileHandlerkada se zatvara.
- class logging.StreamHandler(stream=None)¶
Rukovatelj koji piše oblikovane zapise, popraćene s
self.terminator(zadano"\n"), u stream. stream zadano jesys.stderr.- stream¶
Odredišni stream objekt.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Podklasa
StreamHandlerkoja otvara filename sa zadanim mode i encoding te u nju piše oblikovane zapise. Temeljna datoteka zatvara se priclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Prikazuje instance
LogRecordkao nizove znakova.fmt je predložak u stilu printf. Prepoznati ključevi su
%(name)s,%(message)s,%(msecs)d,%(asctime)si%(levelname)s. Kada nije postavljen, zadano je"%(levelname)s:%(name)s:%(message)s".datefmt je predložak za
time.strftimekoji se koristi za prikaz%(asctime)s. Zadano"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Oblikuje
record.ctpomoćutime.strftimei datefmt. VraćaNonena platformama gdjetime.strftimenije dostupan.
- format(record: LogRecord) str¶
Prikazuje record. Ako predložak koristi
asctime, prvo se pozivaformatTime()kako bi se popuniorecord.asctime.