Hari ini kita akan membahas mengapa seseorang perlu menulis pengganti untuk logger python logging
standar dan bagaimana menggunakan hal ini.

Itu sakit!
Ketika datang ke log in Python, logging
masuk ke pikiran.
logging
adalah solusi yang kuat dan stabil yang tertanam erat dalam ekosistem Python. Anda mengimpornya di mana perlu, membuat beberapa manipulasi - dan itu saja, itu semacam bagaimana Anda dapat menulis logger.exception('--')
didambakan. logger.exception('--')
. Dan entri '--'
akan berakhir di semacam jurnal.
Setelah itu, biasanya pengembang tertarik di mana tepatnya '--'
didapat dan apa yang terjadi dengan catatan ini. Pemrogram naik ke pengaturan logger dan mulai menggunakan tumpukan berbagai opsi untuk mengajarinya dengan benar mendorong catatan ke dalam file, database, pengumpul kesalahan dan tempat-tempat lain yang memungkinkan penyimpanan catatan log.
Konfigurasi untuk logger muncul, yang dimulai dengan rumit, tetapi lebih atau kurang dimengerti:
LOGGER_CONFIG = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "DEBUG", "formatter": "simple", "stream": "ext://sys.stdout" }, }, "root": { "level": "INFO", "handlers": ["console"] } }
Konfigurasi seperti itu dengan cepat berkembang menuju sesuatu yang jauh lebih sulit dicerna. Konfigurasi yang biasanya dikonfigurasikan untuk logging
, dengan level logging yang berbeda, pengumpul pesan yang berbeda dan rotasi file log adalah sepotong teks yang cukup besar yang sudah sangat sulit untuk digali.
Agar tidak sakit dan bahkan menyenangkan
Setelah beberapa programmer akhirnya bosan menggali (dan membuat kesalahan) dalam berbagai opsi konfigurasi untuk logging
. Para insinyur ini menulis logger mereka sendiri, sangat sederhana dan sangat kuat pada saat yang sama. Benda ini disebut Loguru .
Dan di sini adalah demo dari perpustakaan ini, dan secara lengkap menunjukkan bagaimana mengatur logging di aplikasi Anda yang kuat dalam beberapa baris.

Mengapa Anda harus mempertimbangkan loguru
sebagai alternatif untuk logging
?
- Kesederhanaan. Tentang ini, saya sudah mengatakan di atas, tapi saya akan mengatakannya lagi - mengkonfigurasi
loguru
dengan benar lebih mudah daripada logging
. - Hapus cara untuk mengonfigurasi rotasi file log dan mengarsipkan catatan lama.
- Tumpukan baterai sudah termasuk dalam kotak - warna pesan, pemformatan, pengiriman pemberitahuan kegagalan ke email, tumpukan panggilan fungsi bersama dengan laporan kerusakan dan banyak fasilitas bagus lainnya.
- Dan, tentu saja, tidak sinkron! Ya, dunia Python semakin jauh menuju async / menunggu, dan pergeseran tektonik dari semua pemrograman yang haus daya ini jelas membutuhkan penebang yang tidak sinkron.
Tentu saja, Anda harus membayar semuanya. Dan untuk menggunakan loguru
harus membayar dua hal:
- Lieba relatif muda dan mungkin ada kejutan.
- Penulis menjanjikan kompatibilitas penuh dengan
logging
, tetapi Anda mungkin mengalami masalah menghubungkan loguru
dengan perpustakaan pihak ketiga untuk logging
. Misalnya, saat memasang handler untuk Sentry atau Airbrake.
Terlepas dari potensi kesulitan ini, loguru
layak diuji dengan hati-hati dan sudah diikat di proyek Anda berikutnya.