Rumah >pembangunan bahagian belakang >Tutorial Python >Mata pengetahuan modul pengelogan Python didedahkan: soalan biasa semuanya di satu tempat

Mata pengetahuan modul pengelogan Python didedahkan: soalan biasa semuanya di satu tempat

王林
王林ke hadapan
2024-03-08 08:00:14644semak imbas

Python logging 模块知识点大揭秘:常见问题一网打尽

python asas modul pembalakan

Prinsip asas modul pembalakan ialah mencipta pembalak (logger) dan kemudian merekodkan mesej dengan memanggil kaedah pembalak. Pembalak mempunyai tahap yang menentukan mesej yang akan dilog. Modul pengelogan mentakrifkan beberapa tahap yang telah ditetapkan, termasuk DEBUG, INFO, AMARAN, RALAT dan KRITIKAL.

import logging

# 创建一个名为 "my_logger" 的记录器,并设置其级别为 INFO
logger = logging.getLogger("my_logger")
logger.setLevel(logging.INFO)

Seorang pembalak boleh log mesej melalui kaedahnya:

# 记录一条 INFO 级别的消息
logger.info("This is an INFO message")

# 记录一条 WARNING 级别的消息
logger.warning("This is a WARNING message")

# 记录一条 ERROR 级别的消息
logger.error("This is an ERROR message")

LogPengendali

Pengendali log menulis mesej log ke destinasi tertentu, seperti konsol, fail atau rangkaianpelayan. Modul pengelogan menyediakan beberapa pengendali yang telah ditetapkan:

# 创建一个控制台处理程序
handler = logging.StreamHandler()

# 创建一个文件处理程序,将日志写入文件 "my_log.txt"
handler = logging.FileHandler("my_log.txt")

Pengendali boleh dilampirkan pada pembalak dengan menambahkan pada pembalak:

# 将处理程序添加到记录器
logger.addHandler(handler)

Pemformat log

Pemformat log (fORMatter) mengawal penampilan mesej log. Modul pengelogan menyediakan beberapa pemformat yang dipratentukan:

# 创建一个基本格式器
formatter = logging.BasicFormatter()

# 使用自定义格式字符串创建自定义格式器
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

Format boleh dilampirkan pada pengendali dengan menambahkan pada pengendali:

# 将格式器添加到处理程序
handler.setFormatter(formatter)

Soalan Lazim

1. Bagaimana untuk menetapkan tahap pengelogan dalam skrip Python?

import logging

# 设置根日志记录器的级别为 INFO
logging.basicConfig(level=logging.INFO)

2. Bagaimana untuk log pengecualian?

try:
# 尝试执行一些代码
except Exception as e:
# 记录异常
logger.error(e, exc_info=True)

3. Bagaimana untuk melumpuhkan pengendali tertentu?

# 禁用控制台处理程序
logger.removeHandler(handler)

4. Bagaimana untuk menggunakan format log tersuai?

# 使用自定义格式字符串创建自定义格式器
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

# 将格式器添加到处理程序
handler.setFormatter(formatter)

5. Bagaimana untuk menangkap pengecualian yang tidak ditangkap dan logkannya ke fail?

import sys
import logging

def exception_handler(type, value, traceback):
# 记录未捕获的异常
logger.error(value, exc_info=(type, value, traceback))

sys.excepthook = exception_handler

Kesimpulan

Modul pengelogan

Python ialah alat berkuasa yang membantu anda mengelog dan memproses mesej aplikasi dengan mudah. Dengan menguasai perkara utamanya, anda boleh menggunakan modul pengelogan dengan berkesan untuk nyahpepijat, menyelesaikan masalah dan menganalisis tingkah laku aplikasi anda.

Atas ialah kandungan terperinci Mata pengetahuan modul pengelogan Python didedahkan: soalan biasa semuanya di satu tempat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam