Apa itu Loguru
Loguru adalah perpustakaan logging yang kuat untuk Python, dirancang untuk menyederhanakan proses logging dan memudahkan pengembang dalam melacak perilaku aplikasi mereka. Ini menyediakan antarmuka yang intuitif dan mudah digunakan, memungkinkan pengembang untuk menyiapkan logger dan memulai logging hanya dengan beberapa baris kode.
Salah satu keunggulan utama Loguru adalah fleksibilitasnya. Ini menawarkan berbagai tingkat logging, dari pesan debug dan info dasar hingga pesan peringatan dan kesalahan yang lebih serius, memungkinkan pengembang untuk menyesuaikan output logging sesuai dengan kebutuhan mereka. Selain itu, Loguru menyediakan fitur-fitur canggih seperti penanganan exception, rotasi file log, dan logging ke beberapa destinasi.
Loguru juga dikenal karena kemudahan penggunaannya. API-nya dirancang agar sederhana dan mudah dipahami, dengan metode-metode yang intuitif dan dokumentasi yang jelas. Pengembang dapat dengan mudah menyiapkan logger, menyesuaikan format log, dan mulai logging hanya dengan beberapa baris kode.
Perbandingan dengan logging
Loguru dan logging
adalah dua perpustakaan logging populer untuk Python yang menyediakan fungsi yang serupa namun dengan beberapa perbedaan kunci. Dalam artikel ini, saya akan membandingkan Loguru dan logging untuk membantu Anda memutuskan mana yang paling cocok untuk kebutuhan Anda.
-
Kemudahan Penggunaan
Loguru dikenal karena kemudahan penggunaannya, dengan API yang dirancang agar sederhana dan mudah dipahami.Logging
, di sisi lain, dapat lebih kompleks dan memerlukan lebih banyak konfigurasi untuk disiapkan. -
Penyesuaian
Loguru menawarkan lebih banyak fleksibilitas untuk penyesuaian, memungkinkan pengembang untuk dengan mudah mengonfigurasi format log dan memilih dari berbagai tingkat logging.Logging
, meskipun masih dapat disesuaikan, mungkin memerlukan lebih banyak kode untuk mencapai tingkat fleksibilitas yang sama. -
Penanganan Exception
Loguru menyediakan fitur penanganan exception yang canggih, memungkinkan pengembang untuk mencatat dan menangani exception dengan lebih mudah.Logging
dapat menangani exception, tetapi mungkin memerlukan lebih banyak kode untuk mencapai tingkat fungsionalitas yang sama. -
Performa
Loguru dikenal karena performa logging yang cepat dan efisien, dengan overhead minimal.Logging
, meskipun masih performa, mungkin memiliki overhead yang lebih besar karena arsitektur yang lebih kompleks. -
Kompatibilitas
Logging
adalah bagian dari pustaka standar Python, artinya tersedia dalam semua instalasi Python secara default. Loguru, meskipun tidak termasuk dalam pustaka standar, masih mudah diinstal dan digunakan di sebagian besar lingkungan Python.
Memasang Loguru
Untuk memasang Loguru, buka terminal atau command prompt dan jalankan perintah berikut:
$ pip install loguru
Dasar Logging dengan Loguru
Dalam artikel ini, saya akan membahas dasar-dasar logging dengan Loguru, termasuk cara menyiapkan logger, level logging, format rekaman log, dan menulis pesan log.
Menyiapkan Logger
Untuk menyiapkan logger dengan Loguru, cukup panggil metode logger.add()
dengan destinasi output yang diinginkan. Misalnya, untuk menyiapkan logger yang mencatat pesan ke konsol, Anda dapat menggunakan kode berikut:
from loguru import logger
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="DEBUG")
Kode ini menyiapkan logger yang mencatat pesan ke sys.stderr
dengan format rekaman log kustom yang mencakup timestamp, level logging, dan pesan log. Parameter filter
dapat digunakan untuk filter pesan log berdasarkan nama modul yang menghasilkannya, sementara parameter level menetapkan level logging minimum untuk pesan yang akan dicatat.
Level Logging
Loguru menyediakan beberapa level logging yang dapat digunakan untuk mengkategorikan pesan log berdasarkan tingkat keparahan. Level logging yang tersedia, dalam urutan meningkatnya tingkat keparahan, adalah TRACE
, DEBUG
, INFO
, SUCCESS
, WARNING
, ERROR
, dan CRITICAL
. Untuk mencatat pesan pada level logging tertentu, cukup panggil metode logging yang sesuai pada objek logger
. Misalnya, untuk mencatat pesan pada level info, Anda dapat menggunakan kode berikut:
logger.info("This is an info message.")
Kode ini mencatat pesan pada level INFO
, yang akan ditampilkan pada konsol atau file, tergantung pada konfigurasi logger Anda.
Format Rekaman Log
Loguru menyediakan format rekaman log yang fleksibel yang memungkinkan Anda untuk menyesuaikan informasi yang disertakan dalam setiap pesan log. Format rekaman log ditentukan menggunakan parameter format
pada metode logger.add()
. Misalnya, untuk menyertakan nama modul, nama fungsi, dan nomor baris pada setiap pesan log, Anda dapat menggunakan format rekaman log berikut:
logger.add(sys.stderr, format="{time} {level} {module}:{function}:{line} {message}", filter="my_module", level="DEBUG")
Kode ini menyiapkan logger dengan format rekaman log kustom yang mencakup nama modul, nama fungsi, dan nomor baris kode yang menghasilkan setiap pesan log.
Menulis Pesan Log
Untuk menulis pesan log dengan Loguru, cukup panggil metode logging yang sesuai pada objek logger
. Misalnya, untuk menulis pesan debug, Anda dapat menggunakan kode berikut:
logger.debug("This is a debug message.")
Kode ini menulis pesan debug pada konsol atau file, tergantung pada konfigurasi logger Anda.
Teknik Logging Lanjutan dengan Loguru
Kita akan membahas beberapa teknik logging lanjutan yang dapat digunakan dengan Loguru, termasuk penanganan pengecualian, rotasi file log, logging ke beberapa destinasi, dan menyesuaikan output log.
Penanganan Pengecualian
Loguru menyediakan fitur penanganan pengecualian yang canggih yang memudahkan untuk melakukan logging dan menangani pengecualian pada kode Anda. Untuk melakukan logging pada pengecualian dengan Loguru, cukup panggil metode logger.exception()
dan berikan objek pengecualian. Misalnya:
try:
# Some code that may raise an exception
except Exception as e:
logger.exception("An error occurred: {e}")
Kode ini akan melakukan logging pesan kesalahan beserta stack trace jika pengecualian terjadi pada blok try
.
Rotasi File Log
Loguru menyediakan fitur bawaan untuk melakukan rotasi file log, yang berguna untuk mengelola file log yang besar dan mencegahnya menjadi terlalu besar. Untuk mengaktifkan rotasi file log, cukup gunakan parameter rotasi pada metode logger.add()
. Misalnya:
logger.add("app.log", rotation="500 MB")
Kode ini mengatur logger yang melakukan rotasi file log setiap 500 megabita.
Logging ke Beberapa Destinasi
Loguru memungkinkan Anda melakukan logging pesan ke beberapa destinasi secara bersamaan. Untuk melakukan logging ke beberapa destinasi, cukup panggil metode logger.add()
beberapa kali dengan destinasi keluaran yang berbeda. Misalnya:
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="DEBUG")
logger.add("app.log", format="{time} {level} {message}", filter="my_module", level="DEBUG")
Kode ini mengatur logger yang melakukan logging pesan ke sys.stderr
dan app.log
.
Menyesuaikan Output Log
Loguru menyediakan berbagai opsi untuk menyesuaikan output pesan log, termasuk menambahkan metadata kustom, menyaring pesan berdasarkan kriteria, dan menerapkan pemformatan kustom pada pesan log. Misalnya:
logger.add("app.log", format="{time} {level} {message} {extra[user]}")
logger.bind(user="Alice").info("This is a log message.")
Kode ini mengatur logger yang mencakup metadata kustom pada output pesan log, kemudian melakukan logging pesan dengan nilai metadata user
yang diatur menjadi "Alice".
Praktik Terbaik Penggunaan Loguru
Untuk menggunakan Loguru dengan efektif, penting untuk mengikuti beberapa praktik terbaik. Dalam artikel ini, saya akan membahas beberapa praktik terbaik untuk menggunakan Loguru, termasuk konsistensi pesan log, logging di produksi, dan debugging dengan log.
-
Konsistensi Pesan Log
Penting untuk menjaga konsistensi dalam pesan log di seluruh aplikasi. Ini berarti menggunakan format pesan log yang sama dan level logging yang konsisten di seluruh kode Anda. Pesan log yang konsisten membuat lebih mudah untuk mengidentifikasi dan debug masalah di kode Anda, dan juga memudahkan untuk menganalisis dan menafsirkan data log. -
Logging di Produksi
Saat logging di lingkungan produksi, penting untuk memperhatikan dampak yang dapat dimiliki oleh logging terhadap kinerja dan ruang disk. Untuk meminimalkan dampak logging pada aplikasi Anda, pertimbangkan menggunakan level logging yang lebih konservatif di produksi, sepertiINFO
atauWARNING
. Juga disarankan untuk menggunakan rotasi file log dan membatasi ukuran file log untuk mencegah mereka mengambil terlalu banyak ruang disk. -
Debugging dengan Log
Loguru dapat menjadi alat yang kuat untuk debugging masalah di kode Anda. Saat debugging dengan log, penting untuk mencatat cukup informasi untuk dapat melacak perilaku aplikasi Anda, tetapi tidak terlalu banyak sehingga menjadi terlalu rumit. Pertimbangkan untuk menggunakan pesan log untuk melacak alur aplikasi Anda dan merekam input dan output dari fungsi yang kritis.
Referensi