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

王林
Lepaskan: 2024-03-08 08:00:14
ke hadapan
675 orang telah melayarinya

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

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

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

Pengendali boleh dilampirkan pada pembalak dengan menambahkan pada pembalak:

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

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

Format boleh dilampirkan pada pengendali dengan menambahkan pada pengendali:

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

Soalan Lazim

1. Bagaimana untuk menetapkan tahap pengelogan dalam skrip Python?

import logging

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

2. Bagaimana untuk log pengecualian?

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

3. Bagaimana untuk melumpuhkan pengendali tertentu?

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

4. Bagaimana untuk menggunakan format log tersuai?

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

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

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

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!

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