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#

logging.CRITICAL: int#

Numerička vrijednost 50. Koristi se za nepopravljive pogreške.

logging.ERROR: int#

Numerička vrijednost 40. Koristi se za ozbiljne probleme.

logging.WARNING: int#

Numerička vrijednost 30. Zadana razina za netom konfigurirani korijenski logger.

logging.INFO: int#

Numerička vrijednost 20. Koristi se za poruke potvrde.

logging.DEBUG: int#

Numerička vrijednost 10. Koristi se za detaljan dijagnostički ispis.

logging.NOTSET: int#

Numerička vrijednost 0. Označava logger bez konfigurirane razine (učinkovita razina tada se nasljeđuje od korijenskog loggera ili WARNING).

Funkcije#

logging.getLogger(name: str | None = None) Logger#

Vraća Logger registriran pod name, stvarajući ga pri prvom korištenju. Ako je name None, vraća se korijenski logger. Prvi poziv s name="root" (ili s nepostavljenim name) implicitno poziva basicConfig kako bi priložio zadani StreamHandler koji piše u sys.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.debug(msg: str, *args) None#

Istovjetno getLogger().debug(msg, *args).

logging.info(msg: str, *args) None#

Istovjetno getLogger().info(msg, *args).

logging.warning(msg: str, *args) None#

Istovjetno getLogger().warning(msg, *args).

logging.error(msg: str, *args) None#

Istovjetno getLogger().error(msg, *args).

logging.critical(msg: str, *args) None#

Istovjetno getLogger().critical(msg, *args).

logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None#

Istovjetno getLogger().exception(msg, *args, exc_info=exc_info). Bilježi poruku na razini ERROR i dodatno oblikuje trag (traceback) aktivne iznimke kada je exc_info istinit. Ako je exc_info sam po sebi BaseException, koristi se trag te iznimke; u suprotnom se konzultira sys.exc_info() kada je dostupan.

logging.shutdown() None#

Zatvara svaki rukovatelj priložen svakom poznatom loggeru i zaboravlja loggere. Registrira se automatski putem sys.atexit kada je ta kuka dostupna.

logging.addLevelName(level: int, name: str) None#

Pridružuje tekstualni name numeričkoj razini level tako da ga Formatter mož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 FileHandler koristeći filemode i encoding; u suprotnom se koristi StreamHandler koji piše u stream (zadano sys.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 da getLogger može vratiti istu instancu za isto ime.

name: str#

Točkasto ime loggera.

level: int#

Konfigurirana numerička razina. 0 (NOTSET) znači „naslijedi”.

handlers: list#

Popis instanci Handler priloženih ovom loggeru. Kada je prazan, poruke se prosljeđuju rukovateljima korijenskog loggera.

setLevel(level: int) None#

Postavlja pragovnu razinu loggera.

isEnabledFor(level: int) bool#

Vraća True ako bi poruku razine level obradio ovaj logger.

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.

debug(msg: str, *args) None#

Bilježi msg na razini DEBUG.

info(msg: str, *args) None#

Bilježi msg na razini INFO.

warning(msg: str, *args) None#

Bilježi msg na razini WARNING.

error(msg: str, *args) None#

Bilježi msg na razini ERROR.

critical(msg: str, *args) None#

Bilježi msg na razini CRITICAL.

exception(msg: str, *args, exc_info: bool | BaseException = True) None#

Bilježi msg na razini ERROR i, kada je exc_info istinit, dodaje oblikovani trag (traceback). Ako je exc_info instanca BaseException, prikazuje se trag te iznimke; u suprotnom se aktivna iznimka konzultira putem sys.exc_info().

addHandler(handler: Handler) None#

Prilaže handler ovom loggeru.

hasHandlers() bool#

Vraća True ako su ovom loggeru priloženi bilo kakvi rukovatelji.

class logging.Handler(level: int = NOTSET)#

Bazna klasa za sve rukovatelje. Podklase implementiraju emit().

level: int#

Pragovna razina rukovatelja.

formatter: 'Formatter | None'#

Aktivni Formatter, ili None.

setLevel(level: int) None#

Postavlja pragovnu razinu rukovatelja.

setFormatter(formatter: Formatter) None#

Prilaže formatter ovom rukovatelju.

format(record: LogRecord) str#

Prikazuje record pomoću konfiguriranog formatera.

close() None#

Oslobađa resurse koje drži rukovatelj. Poziva ga shutdown te FileHandler kada se zatvara.

class logging.StreamHandler(stream=None)#

Rukovatelj koji piše oblikovane zapise, popraćene s self.terminator (zadano "\n"), u stream. stream zadano je sys.stderr.

stream#

Odredišni stream objekt.

terminator: str#

Niz znakova koji se dodaje nakon svakog oblikovanog zapisa. Zadano "\n".

emit(record: LogRecord) None#

Piše record u stream ako njegova razina dosegne prag rukovatelja.

close() None#

Prazni temeljni stream kada izlaže metodu flush.

class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')#

Podklasa StreamHandler koja otvara filename sa zadanim mode i encoding te u nju piše oblikovane zapise. Temeljna datoteka zatvara se pri close().

class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)#

Prikazuje instance LogRecord kao nizove znakova.

fmt je predložak u stilu printf. Prepoznati ključevi su %(name)s, %(message)s, %(msecs)d, %(asctime)s i %(levelname)s. Kada nije postavljen, zadano je "%(levelname)s:%(name)s:%(message)s".

datefmt je predložak za time.strftime koji se koristi za prikaz %(asctime)s. Zadano "%Y-%m-%d %H:%M:%S".

usesTime() bool#

Vraća True ako predložak oblikovanja referencira asctime.

formatTime(datefmt: str, record: LogRecord) str | None#

Oblikuje record.ct pomoću time.strftime i datefmt. Vraća None na platformama gdje time.strftime nije dostupan.

format(record: LogRecord) str#

Prikazuje record. Ako predložak koristi asctime, prvo se poziva formatTime() kako bi se popunio record.asctime.

class logging.LogRecord#

Spremnik za podatke proslijeđene od Logger njegovim rukovateljima. Instance se popunjavaju putem set(); implementacije loggera ponovno koriste jedan zapis po loggeru kako bi se smanjile alokacije.

name: str#

Ime izvornog loggera.

levelno: int#

Numerička razina ovog zapisa.

levelname: str#

Tekstualni naziv razine.

message: str#

Potpuno oblikovana poruka zapisa.

ct: float#

Vrijeme stvaranja kako ga vraća time.time().

msecs: int#

Milisekundna komponenta od ct.

asctime: str | None#

Čovjeku čitljiva vremenska oznaka; popunjava je odgođeno Formatter.

set(name: str, level: int, message: str) None#

Inicijalizira zapis sa zadanim vrijednostima i bilježi trenutno vrijeme.