logging — jurnalizarea evenimentelor¶
Acest modul oferă un subset ușor al pachetului standard Python logging, adaptat pentru MicroPython. Acceptă jurnalizarea pe niveluri prin obiecte Logger denumite ierarhic, un set restrâns de handlere (StreamHandler, FileHandler), formatare în stil printf prin Formatter și funcții de conveniență la nivel de modul echivalente cu cele care operează pe loggerul rădăcină.
Modulul urmărește API-ul familiar CPython suficient de îndeaproape încât aplicațiile simple scrise pentru biblioteca standard ar trebui să funcționeze nemodificate. Filtrele, blocarea pe mai multe procese, formatul fișierului de configurare și majoritatea claselor de handlere nu sunt furnizate.
Constante de nivel¶
Funcții¶
- logging.getLogger(name: str | None = None) Logger¶
Returnează
Logger-ul înregistrat sub name, creându-l la prima utilizare. Dacă name esteNone, este returnat loggerul rădăcină. Primul apel cuname="root"(sau cu name nesetat) invocă implicitbasicConfigpentru a atașa unStreamHandlerimplicit care scrie însys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Jurnalizează un mesaj la nivelul level pe loggerul rădăcină. args sunt interpolate în msg folosind formatarea în stil printf
%; un singur argument de tip dicționar este utilizat ca mapare.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Echivalent cu
getLogger().exception(msg, *args, exc_info=exc_info). Jurnalizează mesajul laERRORși, în plus, formatează traceback-ul excepției active atunci când exc_info este adevărat. Dacă exc_info este el însuși oBaseException, se utilizează traceback-ul acelei excepții; altfel se consultăsys.exc_info()atunci când este disponibil.
- logging.shutdown() None¶
Închide fiecare handler atașat fiecărui logger cunoscut și uită loggerele. Înregistrată automat prin
sys.atexitatunci când acest hook este disponibil.
- logging.addLevelName(level: int, name: str) None¶
Asociază name-ul textual cu level-ul numeric, astfel încât
Formattersă îl poată reda prin%(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¶
Configurează loggerul rădăcină cu un singur handler.
Dacă filename este furnizat, se creează un
FileHandlerfolosind filemode și encoding; altfel se utilizează unStreamHandlercare scrie în stream (implicitsys.stderr).format și datefmt sunt transmise mai departe către un nou
Formatter.level setează atât nivelul handlerului, cât și nivelul loggerului rădăcină.
Dacă loggerul rădăcină are deja handlere, această funcție nu face nimic, cu excepția cazului în care force este
True, caz în care handlerele existente sunt închise și înlocuite.
Clase¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Un logger denumit. Construiți loggerele prin
getLogger, mai degrabă decât direct, astfel încâtgetLoggersă poată returna aceeași instanță pentru același nume.- handlers: list¶
Lista instanțelor
Handleratașate acestui logger. Când este goală, mesajele sunt trimise către handlerele loggerului rădăcină.
- isEnabledFor(level: int) bool¶
Returnează
Truedacă un mesaj de nivel level ar fi procesat de acest logger.
- getEffectiveLevel() int¶
Returnează primul nivel diferit de zero dintre: nivelul acestui logger, nivelul loggerului rădăcină sau
WARNING.
- log(level: int, msg: str, *args) None¶
Jurnalizează msg la nivelul level. args sunt interpolate în msg cu operatorul
%; dacă primul argument pozițional este un dicționar, acesta este utilizat ca mapare.
- class logging.Handler(level: int = NOTSET)¶
Clasa de bază pentru toate handlerele. Subclasele implementează
emit().- close() None¶
Eliberează resursele deținute de handler. Apelată de
shutdownși deFileHandleratunci când acesta este închis.
- class logging.StreamHandler(stream=None)¶
Handler care scrie înregistrările formatate, urmate de
self.terminator("\n"în mod implicit), în stream. stream are valoarea implicităsys.stderr.- stream¶
Obiectul stream de destinație.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Subclasă
StreamHandlercare deschide filename cu mode și encoding date și scrie în el înregistrările formatate. Fișierul subiacent este închis laclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Redă instanțele
LogRecordca șiruri de caractere.fmt este un șablon în stil printf. Cheile recunoscute sunt
%(name)s,%(message)s,%(msecs)d,%(asctime)sși%(levelname)s. Când nu este setat, valoarea implicită este"%(levelname)s:%(name)s:%(message)s".datefmt este șablonul
time.strftimeutilizat pentru a reda%(asctime)s. Valoarea implicită este"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formatează
record.ctfolosindtime.strftimeși datefmt. ReturneazăNonepe platformele undetime.strftimenu este disponibil.
- format(record: LogRecord) str¶
Redă record. Dacă șablonul utilizează
asctime,formatTime()este invocată mai întâi pentru a popularecord.asctime.