logging --- pencatatan peristiwa¶
Modul ini menyediakan subset ringan dari paket logging standar Python yang diadaptasi untuk MicroPython. Modul ini mendukung pencatatan bertingkat melalui objek Logger yang dinamai secara hierarkis, sejumlah kecil handler (StreamHandler, FileHandler), pemformatan gaya printf melalui Formatter, dan fungsi kemudahan tingkat modul yang setara dengan yang beroperasi pada logger akar.
Modul ini mengikuti API CPython yang familiar dengan cukup dekat sehingga aplikasi sederhana yang ditulis untuk pustaka standar seharusnya berfungsi tanpa perubahan. Filter, penguncian multi-proses, format file konfigurasi, dan sebagian besar kelas handler tidak disediakan.
Konstanta Level¶
Fungsi¶
- logging.getLogger(name: str | None = None) Logger¶
Kembalikan
Loggeryang terdaftar dengan nama name, buat pada penggunaan pertama. Jika name adalahNone, logger akar dikembalikan. Panggilan pertama denganname="root"(atau dengan name tidak diset) secara implisit memanggilbasicConfiguntuk melampirkanStreamHandlerdefault yang menulis kesys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Catat pesan pada level di logger akar. args diinterpolasi ke dalam msg menggunakan pemformatan
%gaya printf; satu argumen dict digunakan sebagai pemetaan.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Setara dengan
getLogger().exception(msg, *args, exc_info=exc_info). Mencatat pesan padaERRORdan secara tambahan memformat traceback pengecualian aktif ketika exc_info bernilai truthy. Jika exc_info itu sendiri adalahBaseException, traceback pengecualian tersebut digunakan; jika tidak,sys.exc_info()dikonsultasikan bila tersedia.
- logging.shutdown() None¶
Tutup setiap handler yang dilampirkan ke setiap logger yang dikenal dan lupakan logger tersebut. Didaftarkan secara otomatis melalui
sys.atexitketika hook tersebut tersedia.
- logging.addLevelName(level: int, name: str) None¶
Kaitkan nama tekstual name dengan level numerik level sehingga
Formatterdapat merendernya melalui%(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¶
Konfigurasikan logger akar dengan satu handler.
Jika filename diberikan, sebuah
FileHandlerdibuat menggunakan filemode dan encoding; jika tidak, sebuahStreamHandleryang menulis ke stream (default kesys.stderr) digunakan.format dan datefmt diteruskan ke
Formatterbaru.level mengatur level handler dan level logger akar.
Jika logger akar sudah memiliki handler, fungsi ini adalah no-op kecuali jika force adalah
True, dalam hal ini handler yang ada ditutup dan diganti.
Kelas¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Logger bernama. Buat logger melalui
getLoggerdaripada secara langsung, sehinggagetLoggerdapat mengembalikan instans yang sama untuk nama yang sama.- handlers: list¶
Daftar instans
Handleryang dilampirkan ke logger ini. Bila kosong, pesan dikirimkan ke handler logger akar.
- isEnabledFor(level: int) bool¶
Kembalikan
Truejika pesan dengan level akan diproses oleh logger ini.
- getEffectiveLevel() int¶
Kembalikan nilai pertama yang bukan nol dari: level logger ini, level logger akar, atau
WARNING.
- log(level: int, msg: str, *args) None¶
Catat msg pada level. args diinterpolasi ke dalam msg dengan operator
%; jika argumen posisional pertama adalah dict, maka digunakan sebagai pemetaan.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Catat msg pada
ERRORdan, ketika exc_info bernilai truthy, tambahkan traceback yang diformat. Jika exc_info adalah instansBaseException, traceback pengecualian tersebut dirender; jika tidak, pengecualian aktif dikonsultasikan melaluisys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Kelas dasar untuk semua handler. Sub-kelas mengimplementasikan
emit().- close() None¶
Lepaskan sumber daya yang dipegang oleh handler. Dipanggil oleh
shutdowndan olehFileHandlerketika ditutup.
- class logging.StreamHandler(stream=None)¶
Handler yang menulis rekaman terformat, diikuti oleh
self.terminator("\n"secara default), ke stream. stream default kesys.stderr.- stream¶
Objek stream tujuan.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Subkelas
StreamHandleryang membuka filename dengan mode dan encoding yang diberikan dan menulis rekaman terformat ke dalamnya. File yang mendasarinya ditutup padaclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Render instans
LogRecordmenjadi string.fmt adalah template gaya printf. Kunci yang dikenali adalah
%(name)s,%(message)s,%(msecs)d,%(asctime)s, dan%(levelname)s. Bila tidak diset, default ke"%(levelname)s:%(name)s:%(message)s".datefmt adalah template
time.strftimeyang digunakan untuk merender%(asctime)s. Default ke"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Format
record.ctmenggunakantime.strftimedan datefmt. MengembalikanNonepada platform di manatime.strftimetidak tersedia.
- format(record: LogRecord) str¶
Render record. Jika template menggunakan
asctime,formatTime()dipanggil terlebih dahulu untuk mengisirecord.asctime.