Perbandingan perpustakaan log Python: pembalakan lwn loguru
1. Loguru memudahkan pembalakan
Pengelogan ialah alat penting dalam pembangunan Python. Ia membantu pembangun merekod status berjalan program, masalah nyahpepijat dan memantau kesihatan sistem. Python disertakan dengan perpustakaan pembalakan. Walau bagaimanapun, apabila keperluan berubah, ramai orang mula menggunakan loguru sebagai alternatif. Artikel ini akan membandingkan kedua-dua perpustakaan ini dan membantu anda memilih penyelesaian pengelogan yang lebih sesuai.
Loguru ialah perpustakaan pengelogan pihak ketiga yang popular. Ia menjadi alternatif yang hebat kepada pengelogan dengan memudahkan proses konfigurasi, menyokong panggilan berantai dan menyediakan fungsi yang lebih kaya.
Kelebihan Loguru
-
Konfigurasi mudah: Loguru tidak memerlukan pembuatan konfigurasi yang kompleks. Konfigurasi log yang kompleks boleh dilengkapkan dengan hanya beberapa baris kod.
-
Panggilan berangkai: Ia menyokong panggilan berantai untuk menjadikan pengelogan lebih intuitif.
-
Output berbilang sasaran: Ia boleh mengeluarkan log dengan mudah ke konsol dan fail pada masa yang sama, serta menyokong konfigurasi format kaya.
-
Ciri tambahan: Ia menyokong fungsi seperti pemampatan log automatik, putaran fail log dan hari pengekalan log.
Contoh asas Loguru
<code class="language-python">from loguru import logger
# 配置日志
logger.add("app.log", rotation="500 MB") # 文件大小超过 500 MB 时自动轮转
# 记录日志消息
logger.info("这是一个信息消息。")
logger.warning("这是一个警告消息。")
logger.error("这是一个错误消息。")</code>
Salin selepas log masuk
Salin selepas log masuk
Dalam contoh ini, kita tidak perlu mengkonfigurasi berbilang pemproses tambahan. Konfigurasi log fail mudah dicapai dengan hanya memanggil logger.add().
Output ke fail dan konsol secara serentak
Loguru boleh mengeluarkan dengan mudah ke fail dan konsol pada masa yang sama:
<code class="language-python">from loguru import logger
import sys
# 添加日志输出到文件和控制台
logger.add("app.log", rotation="500 MB", retention="10 days") # 文件轮转和保留 10 天
logger.add(sys.stdout, level="INFO") # 输出到控制台
# 记录日志消息
logger.info("这是一个信息消息。")
logger.warning("这是一个警告消息。")
logger.error("这是一个错误消息。")</code>
Salin selepas log masuk
Di sini, logger.add(sys.stdout, level="INFO") boleh memaparkan log pada konsol tanpa konfigurasi tambahan.
2. Kelebihan dan keburukan perpustakaan pengelogan terbina dalam Python
Kelebihan
-
Sebahagian daripada pustaka standard: pengelogan adalah sebahagian daripada pustaka standard Python, jadi tiada pemasangan tambahan diperlukan dan ia adalah merentas platform.
-
Sangat boleh disesuaikan: pengelogan menyediakan keupayaan penyesuaian yang kuat, membenarkan kawalan fleksibel format log, tahap dan destinasi (fail, konsol, pelayan jauh, dll.).
-
Keserasian yang kukuh: Banyak perpustakaan pihak ketiga juga menggunakan pengelogan, membolehkan penyepaduan lancar pelbagai log.
Keburukan
-
Konfigurasi kompleks: Penggunaan asas pengelogan adalah agak mudah, tetapi konfigurasi yang sedikit lebih kompleks boleh menjadi verbose dan tidak intuitif, terutamanya apabila output perlu dikeluarkan kepada berbilang sasaran pada masa yang sama (seperti fail dan konsol) )jam.
-
Tidak menyokong panggilan berantai: pengelogan tidak menyokong panggilan berantai seperti loguru dan perlu dikonfigurasikan lapisan demi lapisan.
Contoh asas
Contoh log ringkas
pembalakan adalah seperti berikut:
<code class="language-python">import logging
# 配置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
filename='app.log',
filemode='a'
)
# 记录日志消息
logging.info("这是一个信息消息。")
logging.warning("这是一个警告消息。")
logging.error("这是一个错误消息。")</code>
Salin selepas log masuk
Dalam contoh ini, log akan dilog ke fail app.log tetapi tidak akan dipaparkan dalam konsol. Jika kita ingin memaparkan log dalam konsol dan dalam fail pada masa yang sama, kita perlu mengkonfigurasi StreamHandler sebagai tambahan.
pada masa yang sama output ke konfigurasi fail dan konsol
Untuk mengeluarkan output log kepada konsol dan fail pada masa yang sama, kita perlu mengkonfigurasi pelbagai pengendali. Kodnya adalah seperti berikut: <:>
<code class="language-python">from loguru import logger
# 配置日志
logger.add("app.log", rotation="500 MB") # 文件大小超过 500 MB 时自动轮转
# 记录日志消息
logger.info("这是一个信息消息。")
logger.warning("这是一个警告消息。")
logger.error("这是一个错误消息。")</code>
Salin selepas log masuk
Salin selepas log masuk
Ia dapat dilihat bahawa untuk mencapai ciri yang agak mudah, kita perlu membuat pengendali yang berbeza dan mengkonfigurasi mereka satu demi satu.
3. Pembalakan dan perbandingan terperinci Loguru
4. Cadangan senario aplikasi
-
Aplikasi ringkas dan pembangunan pantas: Loguru ialah pilihan yang lebih baik. Ia ringkas dan intuitif, sesuai untuk prototaip pantas dan projek kecil.
-
Aplikasi kompleks dan projek berbilang modul: Ciri yang sangat disesuaikan yang disediakan oleh pembalakan lebih sesuai untuk sistem kompleks yang memerlukan konfigurasi berbilang peringkat, terutamanya projek yang bergantung pada perpustakaan pihak ketiga dan ingin menyatukan pengurusan log .
5
Loguru dan pembalakan masing-masing mempunyai kelebihan dan kekurangan masing-masing. Bagi kebanyakan projek Python, sintaks ringkas Loguru dan ciri berkuasa menjadikannya pilihan pertama untuk pembangunan pesat. Untuk projek besar, keserasian dan fleksibiliti pembalakan perpustakaan standard adalah lebih sesuai. Semoga artikel ini akan membantu anda memilih alat pengelogan yang betul untuk projek anda.
Leapcell: Platform Pengehosan Web Tanpa Pelayan Terbaik
Akhir sekali, saya ingin mengesyorkan platform terbaik untuk menggunakan aplikasi Python: Leapcell
1. Sokongan berbilang bahasa
Bangun dalam JavaScript, Python, Go atau Rust. -
2. Sebarkan projek tanpa had secara percuma
Hanya bayar untuk apa yang anda gunakan - tiada permintaan, tiada bayaran. -
3. Keberkesanan kos yang tiada tandingan
Bayar semasa anda pergi, tiada yuran terbiar. -
Contoh: $25 menyokong 6.94 juta permintaan dengan purata masa tindak balas 60 milisaat. -
4. Pengalaman pembangun yang dipermudahkan
UI intuitif, mudah disediakan. -
Saluran paip CI/CD automatik sepenuhnya dan penyepaduan GitOps. -
Metrik masa nyata dan pengelogan untuk mendapatkan cerapan yang boleh diambil tindakan. -
5. Pengembangan yang mudah dan prestasi tinggi
Penskalaan automatik untuk mengendalikan konkurensi tinggi dengan mudah. -
Sifar overhed operasi - hanya fokus pada pembinaan. -
Ketahui lebih lanjut dalam dokumentasi!
Leapcell Twitter:
https://www.php.cn/link/7884effb9452a6d7a7a79499ef854afd
Atas ialah kandungan terperinci Pembalakan Python: loguru vs pembalakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!