Traffine I/O

Bahasa Indonesia

2023-03-10

Loguru

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:

bash
$ 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:

python
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:

python
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:

python
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.

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:

python
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:

python
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:

python
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:

python
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:

python
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, seperti INFO atau WARNING. 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

https://github.com/Delgan/loguru
https://loguru.readthedocs.io/en/stable/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!