modul pembalakan menyediakan api yang mudah untuk menyediakan pembalak. Pembalak akan bertanggungjawab untuk memproses mesej log dan menulisnya ke fail atau konsol:
import logging # 创建一个名为 "my_logger" 的日志记录器 logger = logging.getLogger("my_logger") # 设置日志级别为 DEBUG,表示要记录所有级别的日志消息 logger.setLevel(logging.DEBUG)
Untuk log mesej log, gunakan kaedah debug()
, info()
, warning()
, error()
或 critical()
yang disediakan oleh pembalak. Setiap kaedah sepadan dengan tahap log yang berbeza:
logger.debug("这是 debug 消息") logger.info("这是 info 消息") logger.warning("这是 warning 消息") logger.error("这是 error 消息") logger.critical("这是 critical 消息")
Secara lalai, modul pengelogan menggunakan format log mudah, termasuk tahap log, cap masa dan mesej. Anda boleh menyesuaikan format log untuk memasukkan maklumat tambahan seperti nama fungsi, nombor baris atau ID proses:
# 使用 %(asctime)s、%(levelname)s 和 %(message)s 占位符自定义日志格式 fORMatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") # 将格式器添加到日志记录器 logger.addHandler(logging.StreamHandler()) logger.addHandler(logging.FileHandler("my_log.log"))
Modul pembalakan menyokong hierarki log di mana pembalak boleh mempunyai ibu bapa dan anak. Pembalak ibu bapa akan log semua mesej dalam pembalak anak:
# 创建一个名为 "parent_logger" 的父级日志记录器 parent_logger = logging.getLogger("parent_logger") # 创建一个名为 "child_logger" 的子级日志记录器 child_logger = logging.getLogger("parent_logger.child_logger") # 设置子级日志记录器的日志级别为 INFO,表示仅记录 info 和更高级别的消息 child_logger.setLevel(logging.INFO) # 父级日志记录器中的消息将传播到子级日志记录器 parent_logger.info("父级日志记录器消息") child_logger.info("子级日志记录器消息")
Anda boleh menggunakan penapis log untuk mengawal mesej log yang dilog atau disebarkan. Penapis boleh berdasarkan tahap log, kandungan mesej atau sifat lain:
# 创建一个过滤器,仅允许记录 error 级别及以上的消息 filter = logging.Filter() filter.filter = lambda record: record.levelno >= logging.ERROR # 将过滤器添加到日志记录器 logger.addFilter(filter)
Putaran log boleh mengurus dan membahagi fail log secara automatik apabila ia menjadi terlalu besar. Anda boleh menetapkan saiz fail log maksimum atau menyimpan sejumlah fail log:
# 使用 RotatingFileHandler 设置日志轮转,最大日志文件大小为 10MB handler = logging.handlers.RotatingFileHandler("my_log.log", maxBytes=10240000) # 将处理程序添加到日志记录器 logger.addHandler(handler)
Modul pengelogan membolehkan anda mencipta pengendali log anda sendiri, memberikan lebih fleksibiliti. Anda boleh menggunakan <code><strong class="keylink">Socket</strong>Handler
将日志消息发送到远程服务器,或使用 TimedRotatingFileHandler
Socket
TimedRotatingFileHandler
untuk memutar fail log berdasarkan selang masa dan bukannya saiz fail:
# 创建一个自定义日志句柄,将日志消息发送到远程服务器 handler = logging.handlers.SocketHandler("localhost", 1234) # 将处理程序添加到日志记录器 logger.addHandler(handler)
Atas ialah kandungan terperinci Modul pengelogan Python: Panduan lanjutan untuk pemula hingga mahir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!