logging --- ghi nhật ký sự kiện¶
Mô-đun này cung cấp một tập hợp con nhẹ của gói logging chuẩn trong Python, được điều chỉnh cho MicroPython. Nó hỗ trợ ghi nhật ký theo cấp độ thông qua các đối tượng Logger được đặt tên theo phân cấp, một số lượng nhỏ các trình xử lý (StreamHandler, FileHandler), định dạng kiểu printf qua Formatter, và các hàm tiện lợi ở cấp mô-đun tương đương với các hàm hoạt động trên logger gốc.
Mô-đun này tuân theo API CPython quen thuộc đủ chặt chẽ để các ứng dụng đơn giản được viết cho thư viện chuẩn hoạt động mà không cần thay đổi. Bộ lọc, khóa đa tiến trình, định dạng tệp cấu hình và hầu hết các lớp trình xử lý không được cung cấp.
Hằng số cấp độ¶
Hàm¶
- logging.getLogger(name: str | None = None) Logger¶
Trả về
Loggerđã đăng ký với tên name, tạo mới khi sử dụng lần đầu. Nếu name làNonethì trả về logger gốc. Lần gọi đầu tiên vớiname="root"(hoặc với name không được đặt) sẽ ngầm gọibasicConfigđể gắnStreamHandlermặc định ghi vàosys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Ghi một thông báo ở level trên logger gốc. args được nội suy vào msg bằng định dạng printf kiểu
%; một đối số dict đơn lẻ được dùng làm ánh xạ.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Tương đương với
getLogger().exception(msg, *args, exc_info=exc_info). Ghi thông báo ởERRORvà bổ sung định dạng traceback của ngoại lệ đang hoạt động khi exc_info có giá trị đúng. Nếu exc_info chính là mộtBaseException, traceback của ngoại lệ đó được sử dụng; ngược lạisys.exc_info()được tham khảo khi có sẵn.
- logging.shutdown() None¶
Đóng mọi trình xử lý gắn với mọi logger đã biết và xóa các logger đó. Được đăng ký tự động qua
sys.atexitkhi hook đó có sẵn.
- logging.addLevelName(level: int, name: str) None¶
Liên kết name dạng văn bản với level dạng số để
Formattercó thể hiển thị nó qua%(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¶
Cấu hình logger gốc với một trình xử lý duy nhất.
Nếu filename được cung cấp, một
FileHandlerđược tạo bằng filemode và encoding; ngược lại mộtStreamHandlerghi vào stream (mặc định làsys.stderr) được sử dụng.format và datefmt được truyền đến một
Formattermới.level đặt cả cấp độ của trình xử lý và cấp độ của logger gốc.
Nếu logger gốc đã có các trình xử lý, hàm này là no-op trừ khi force là
True, trong trường hợp đó các trình xử lý hiện tại được đóng và thay thế.
Lớp¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Một logger được đặt tên. Khởi tạo các logger qua
getLoggerthay vì trực tiếp, đểgetLoggercó thể trả về cùng một thực thể cho cùng một tên.- handlers: list¶
Danh sách các thực thể
Handlergắn với logger này. Khi trống, thông báo được gửi đến các trình xử lý của logger gốc.
- getEffectiveLevel() int¶
Trả về giá trị khác không đầu tiên trong số: cấp độ của logger này, cấp độ của logger gốc, hoặc
WARNING.
- log(level: int, msg: str, *args) None¶
Ghi msg ở level. args được nội suy vào msg bằng toán tử
%; nếu đối số vị trí đầu tiên là dict thì nó được dùng làm ánh xạ.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Ghi msg ở
ERRORvà, khi exc_info có giá trị đúng, thêm vào traceback đã được định dạng. Nếu exc_info là một thực thểBaseExceptionthì traceback của ngoại lệ đó được hiển thị; ngược lại ngoại lệ đang hoạt động được tham khảo quasys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Lớp cơ sở cho tất cả các trình xử lý. Các lớp con triển khai
emit().- close() None¶
Giải phóng tài nguyên do trình xử lý nắm giữ. Được gọi bởi
shutdownvà bởiFileHandlerkhi nó được đóng.
- class logging.StreamHandler(stream=None)¶
Trình xử lý ghi các bản ghi đã định dạng, theo sau là
self.terminator("\n"theo mặc định), vào stream. stream mặc định làsys.stderr.- stream¶
Đối tượng luồng đích.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Lớp con của
StreamHandlermở filename với mode và encoding cho trước, và ghi các bản ghi đã định dạng vào đó. Tệp bên dưới được đóng khi gọiclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Hiển thị các thực thể
LogRecordthành chuỗi.fmt là mẫu kiểu printf. Các khóa được nhận biết là
%(name)s,%(message)s,%(msecs)d,%(asctime)svà%(levelname)s. Khi không được đặt, mặc định là"%(levelname)s:%(name)s:%(message)s".datefmt là mẫu
time.strftimedùng để hiển thị%(asctime)s. Mặc định là"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Định dạng
record.ctbằngtime.strftimevà datefmt. Trả vềNonetrên các nền tảng không cótime.strftime.
- format(record: LogRecord) str¶
Hiển thị record. Nếu mẫu sử dụng
asctime,formatTime()được gọi trước để điềnrecord.asctime.