Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan Terbaik untuk Modul Pengelogan Python: Menulis Kod Bersih, Boleh Diselenggara

Amalan Terbaik untuk Modul Pengelogan Python: Menulis Kod Bersih, Boleh Diselenggara

WBOY
WBOYke hadapan
2024-02-21 09:33:031096semak imbas

Python Logging 模块的最佳实践:编写干净、可维护的代码

Tahap log

Tahap

Log menentukan mesej yang akan dikeluarkan ke log. python Modul pembalakan menyediakan 6 peringkat pembalakan (dari rendah ke tinggi):

DEBUG
INFO
WARNING
ERROR
CRITICAL
FATAL

Secara amnya, tahap berikut disyorkan:

  • DEBUG: Digunakan untuk menyahpepijat maklumat, hanya digunakan semasa peringkat pembangunan
  • INFO: Digunakan untuk maklumat umum, merekod status sistem dan operasi
  • AMARAN: Untuk masalah berpotensi yang boleh menyebabkan masalah tetapi tidak akan mengganggu sistem dengan segera
  • RALAT: Digunakan untuk ralat dan pengecualian yang memerlukan perhatian dan penyelesaian
  • KRITIKAL: digunakan untuk ralat serius yang akan menyebabkan gangguan sistem

Format log

Format log menentukan maklumat yang terkandung dalam mesej log. Python Modul pengelogan menyediakan pelbagai pemformat yang dipratentukan, seperti:

logging.FORMatter()
logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

Pemformat juga boleh disesuaikan untuk menambah maklumat tambahan seperti ID proses, nama benang atau timbunan panggilan.

Pemprosesan log

Pemprosesan log menentukan cara mesej log dikeluarkan dan diproses. Modul Python Logging menyediakan pelbagai pemproses, seperti:

  • StreamHandler: Output mesej log ke stdout atau stderr
  • FileHandler: Output mesej log ke fail
  • RotatingFileHandler: Output mesej log ke fail dan tatal secara automatik apabila fail mencapai saiz tertentu
  • SocketHandler: Hantar mesej log kepada hos jauh melalui rangkaian

Berbilang pemproses boleh digunakan serentak untuk memproses mesej log dengan cara yang berbeza.

Amalan Terbaik

Berikut ialah beberapa amalan terbaik untuk modul Pengelogan Python:

  • Gunakan tahap log yang sesuai: Pilih tahap log yang sesuai berdasarkan kepentingan mesej.
  • Format log tersuai: Tambah maklumat tambahan seperti yang diperlukan untuk meningkatkan kebolehbacaan dan kebolehkesanan log.
  • Gunakan berbilang pemproses: Gunakan berbilang pemproses pada masa yang sama untuk memproses mesej log dengan cara yang berbeza, seperti mengelog mesej ralat ke fail dan mengeluarkan maklumat penyahpepijatan ke konsol.
  • Menggunakan modul logging.config: Gunakan modul ini untuk mengkonfigurasi tetapan pengelogan yang kompleks, seperti menggunakan fail konfigurasi atau fungsi dictConfig().
  • Ikuti konvensyen pengelogan: Gunakan format dan tahap pengelogan yang konsisten di seluruh pangkalan kod anda untuk meningkatkan kebolehbacaan dan kebolehselenggaraan kod.
  • Log jejak tindanan untuk pengecualian: Apabila mengelog ralat atau pengecualian, sertakan jejak tindanan untuk membantu penyahpepijatan.
  • Gunakan log nyahpepijat dengan bijak: Gunakan tahap DEBUG hanya apabila diperlukan, jika tidak, ia akan menghasilkan banyak bunyi.
  • Semak log dengan kerap: Semak log dengan kerap untuk ralat, amaran atau maklumat lain yang memerlukan perhatian.

Contoh Kod

Berikut ialah contoh mudah menggunakan modul Pengelogan Python:

import logging

# 创建一个 logger,传递名称为 my_app
logger = logging.getLogger("my_app")

# 设置日志级别为 INFO
logger.setLevel(logging.INFO)

# 创建一个流处理器,将日志消息输出到 stdout
handler = logging.StreamHandler()
handler.setLevel(logging.INFO)

# 创建一个格式器
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)

# 将处理器添加到 logger
logger.addHandler(handler)

# 记录一條 INFO 級別的日誌信息
logger.info("This is an info message")

Dengan mengikuti amalan terbaik ini, anda boleh menggunakan modul Pengelogan Python dengan berkesan untuk merekodkan peristiwa dalam aplikasi anda, mempertingkatkan kebolehselenggaraan, kebolehbacaan dan kebolehnyahpecatan kod anda.

Atas ialah kandungan terperinci Amalan Terbaik untuk Modul Pengelogan Python: Menulis Kod Bersih, Boleh Diselenggara. 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