Rumah > Artikel > pembangunan bahagian belakang > Modul pengelogan Python dinyahsulit: mendedahkan bahagian yang tidak diketahui
1. Tahap log: kawalan maklumat log yang tepat
Modullog mentakrifkan lima tahap log standard: DEBUG, INFO, AMARAN, RALAT dan KRITIKAL. Tahap ini menentukan kepentingan dan keterukan mesej untuk dilog. Secara lalai, pengelogan hanya mencatatkan mesej peringkat AMARAN dan ke atas. Anda boleh memperhalusi tingkah laku pembalakan dengan menetapkan tahap pembalak. Contohnya:
import logging # 设置 root 日志器的级别为 INFO logging.basicConfig(level=logging.INFO)
2. Format log: output log tersuai
Modul pengelogan menyediakan mekanisme pemformatan log yang berkuasa yang membolehkan anda menyesuaikan penampilan mesej log. Format StringMenentukan maklumat yang terkandung dalam mesej log, seperti cap masa, tahap log, teks mesej dan surih tindanan. Format lalai ialah:
"[%(asctime)s] %(levelname)s %(module)s.%(funcName)s: %(message)s"
Anda boleh menyesuaikan format menggunakan kod berikut:
# 设置自定义日志格式 logging.basicConfig(fORMat="%(asctime)s %(levelname)-8s %(message)s")
3. Pemproses log: destinasi keluaran log lanjutan
Pengendali bertanggungjawab menghantar mesej log ke destinasi tertentu, seperti fail, konsol atau pelayan jauh. Modul pengelogan menyediakan beberapa pengendali terbina dalam seperti StreamHandler dan FileHandler.
Mencipta pemproses tersuai juga sangat mudah. Anda perlu membuat kelas dan mengatasi kaedah pemegang, yang menulis mesej log kepada sasaran. Contohnya, untuk menulis log pada fail tersuai:
class MyFileHandler(logging.FileHandler): def __init__(self, filename): super().__init__(filename) # 将自定义处理器添加到 root 日志器 logging.getLogger().addHandler(MyFileHandler("my_log.txt"))
4. Penapis log: tapis mesej log yang tidak diperlukan
Penapis membolehkan anda menapis mesej log berdasarkan kriteria tertentu. Anda boleh membuat penapis berdasarkan tahap log, teks mesej atau kriteria lain. Penapis boleh dilampirkan pada pemproses untuk membenarkan hanya mesej yang memenuhi kriteria untuk dilalui.
Sebagai contoh, penapis yang mengabaikan mesej dengan tahap AMARAN:
import logging # 创建筛选器忽略 WARNING 级别的消息 filter = logging.Filter() filter.filter = lambda record: record.levelno < logging.WARNING # 将筛选器添加到 root 日志器的处理器 logging.getLogger().handlers[0].addFilter(filter)
5. Pengurusan konteks log: pengelogan elegan
logging.LoggerContextManager Pengurus konteks menyediakan cara ringkas untuk log mesej dalam blok. Ini berguna untuk menukar tahap log buat sementara waktu atau melumpuhkan pengelogan.
with logging.LoggerContextManager(): # 临时将日志级别设置为 DEBUG logging.getLogger().setLevel(logging.DEBUG) # 在块内记录 DEBUG 级的消息 logging.debug("调试信息")
6 Kemahiran lanjutan:
Kesimpulan:
Modul pengeloganpython ialah alat yang berkuasa yang boleh digunakan untuk mengelog aktiviti aplikasi dengan cekap. Dengan memahami tahap log, format log, pemproses log, penapis log dan teknik lanjutan, anda boleh memanfaatkan sepenuhnya keupayaan pembalakan dan mencipta penyelesaian pembalakan yang fleksibel dan bermakna untuk aplikasi anda.
Atas ialah kandungan terperinci Modul pengelogan Python dinyahsulit: mendedahkan bahagian yang tidak diketahui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!