


Mata pengetahuan modul pengelogan Python didedahkan: soalan biasa semuanya di satu tempat
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 pengeloganPython 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penyahpepijatan berbilang benang boleh menggunakan GDB: 1. Dayakan penyusunan maklumat penyahpepijatan; 2. Tetapkan titik putus; Kebuntuan penyahpepijatan kes sebenar: 1. Gunakan threadapplyalbt untuk mencetak tindanan;

Bagaimana cara menggunakan LeakSanitizer untuk menyahpepijat kebocoran memori C++? Pasang LeakSanitizer. Dayakan LeakSanitizer melalui bendera kompilasi. Jalankan aplikasi dan analisis laporan LeakSanitizer. Kenal pasti jenis peruntukan memori dan lokasi peruntukan. Betulkan kebocoran memori dan pastikan semua memori yang diperuntukkan secara dinamik dikeluarkan.

Artikel ini memperkenalkan pintasan untuk penyahpepijatan dan analisis fungsi Go, termasuk: dlv penyahpepijat terbina dalam, yang digunakan untuk menjeda pelaksanaan, menyemak pembolehubah dan menetapkan titik putus. Log, gunakan pakej log untuk merakam mesej dan melihatnya semasa penyahpepijatan. Alat analisis prestasi pprof menjana graf panggilan dan menganalisis prestasi, serta menggunakan gotoolpprof untuk menganalisis data. Kes praktikal: Analisis kebocoran memori melalui pprof dan hasilkan graf panggilan untuk memaparkan fungsi yang menyebabkan kebocoran.

Ralat pengendalian dan log masuk dalam reka bentuk kelas C++ termasuk: Pengendalian pengecualian: menangkap dan mengendalikan pengecualian, menggunakan kelas pengecualian tersuai untuk memberikan maklumat ralat khusus. Kod ralat: Gunakan integer atau penghitungan untuk mewakili keadaan ralat dan mengembalikannya dalam nilai pulangan. Penegasan: Sahkan syarat pra dan pasca, dan buang pengecualian jika ia tidak dipenuhi. Pengelogan perpustakaan C++: pengelogan asas menggunakan std::cerr dan std::clog. Perpustakaan pengelogan luaran: Integrasikan perpustakaan pihak ketiga untuk ciri lanjutan seperti penapisan tahap dan putaran fail log. Kelas log tersuai: Buat kelas log anda sendiri, abstrak mekanisme asas dan sediakan antara muka biasa untuk merekodkan tahap maklumat yang berbeza.

Terdapat beberapa cara untuk mencipta penyelesaian pengelogan tersuai untuk tapak web PHP anda, termasuk: menggunakan perpustakaan serasi PSR-3 (seperti Monolog, Log4php, PSR-3Logger) atau menggunakan fungsi pengelogan asli PHP (seperti error_log(), syslog( ), debug_print_backtrace()). Memantau tingkah laku aplikasi anda dan isu penyelesaian masalah boleh dilakukan dengan mudah menggunakan penyelesaian pengelogan tersuai, contohnya: Gunakan Monolog untuk mencipta pembalak yang merekodkan mesej ke fail cakera.

Ujian dan penyahpepijatan serentak Ujian dan penyahpepijatan serentak dalam pengaturcaraan serentak Java adalah penting dan teknik berikut tersedia: Ujian serentak: Ujian unit: Asingkan dan uji satu tugas serentak. Ujian integrasi: menguji interaksi antara pelbagai tugas serentak. Ujian beban: Nilaikan prestasi dan kebolehskalaan aplikasi di bawah beban berat. Penyahpepijatan Konkurensi: Titik Putus: Jeda pelaksanaan utas dan periksa pembolehubah atau jalankan kod. Pengelogan: Rekod peristiwa dan status urutan. Jejak tindanan: Kenal pasti sumber pengecualian. Alat visualisasi: Pantau aktiviti benang dan penggunaan sumber.

Alat untuk menyahpepijat kod tak segerak PHP termasuk: Psalm: alat analisis statik yang menemui kemungkinan ralat. ParallelLint: Alat yang memeriksa kod tak segerak dan memberikan cadangan. Xdebug: Sambungan untuk menyahpepijat aplikasi PHP dengan mendayakan sesi dan melangkah melalui kod. Petua lain termasuk menggunakan pengelogan, penegasan, kod berjalan secara setempat dan menulis ujian unit.

Teknik berikut tersedia untuk menyahpepijat fungsi rekursif: Semak jejak tindananTetapkan titik nyahpepijatSemak jika kes asas dilaksanakan dengan betulKira bilangan panggilan rekursifVisualkan tindanan rekursif
