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

WBOY
Lepaskan: 2024-02-21 09:33:03
ke hadapan
1095 orang telah melayarinya

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

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

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

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!

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