Modul pengelogan Python: Panduan lanjutan untuk pemula hingga mahir

王林
Lepaskan: 2024-03-08 08:20:13
ke hadapan
578 orang telah melayarinya

Python logging 模块:初学者到大师的进阶指南

Panduan Pemula

TetapanLogLogger

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)
Salin selepas log masuk

Rakam mesej log

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 消息")
Salin selepas log masuk

Format log

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"))
Salin selepas log masuk

Panduan Perantaraan

Hierarki Log dan Penyebar

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("子级日志记录器消息")
Salin selepas log masuk

Penapis log

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)
Salin selepas log masuk

Panduan Lanjutan

Putaran log

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)
Salin selepas log masuk

Pemegang log tersuai

Modul pengelogan membolehkan anda mencipta pengendali log anda sendiri, memberikan lebih fleksibiliti. Anda boleh menggunakan <code><strong class="keylink">Socket</strong>Handler 将日志消息发送到远程服务器,或使用 TimedRotatingFileHandlerSocket

Handler untuk menghantar mesej log ke

server

jauh, atau menggunakan TimedRotatingFileHandler untuk memutar fail log berdasarkan selang masa dan bukannya saiz fail:

# 创建一个自定义日志句柄,将日志消息发送到远程服务器
handler = logging.handlers.SocketHandler("localhost", 1234)

# 将处理程序添加到日志记录器
logger.addHandler(handler)
Salin selepas log masuk
Kesimpulan Modul pengelogan python ialah 🎜alat yang berkuasa dan fleksibel yang boleh meningkatkan keupayaan pengelogan dan penyahpepijatan program anda dengan ketara. Dengan memahami dan menggunakan teknik yang diterangkan dalam panduan ini, anda akan dapat mengurus log dengan berkesan, menyelesaikan masalah dan memastikan program anda berjalan dengan stabil dan boleh dipercayai. 🎜

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!

sumber:lsjlt.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan