- 1 1. Panduan Lengkap Logging di Python | Dari Debugging hingga Produksi
- 2 2. Apa itu logging di Python? Konsep dasar dan mengapa diperlukan
- 3 3. Cara Memulai Logging dengan Modul logging Bawaan Python
- 4 4. Cara Mengeluarkan Log ke File dan Konsol di Python
- 5 5. Teknik Logging Efektif dalam Proyek Python
- 6 6. Tiga Perpustakaan yang Direkomendasikan untuk Meningkatkan Logging Python
- 7 7. Menyelesaikan Pertanyaan tentang Logging Python!
- 8 8. Kuasai logging Python untuk meningkatkan efisiensi pengembangan
1. Panduan Lengkap Logging di Python | Dari Debugging hingga Produksi
Saat mengembangkan program dengan Python, logging sangat penting untuk mengidentifikasi kesalahan dan memverifikasi perilaku. Artikel ini menjelaskan segala hal mulai dari konsep dasar hingga teknik praktis sehingga pemula Python dapat menggunakan logging secara efektif.
2. Apa itu logging di Python? Konsep dasar dan mengapa diperlukan
Logging adalah mekanisme untuk merekam informasi dan kesalahan yang terjadi saat program berjalan. Penggunaan logging yang tepat memberikan manfaat berikut:
Manfaat logging
- Analisis kesalahan yang lebih mudah Membantu menemukan di mana kesalahan terjadi dan apa penyebabnya.
- Melacak perilaku program Anda dapat melihat bagian mana yang berjalan dengan benar dan di mana masalah muncul.
- Mengaktifkan pemantauan operasional Menyediakan dasar untuk memantau kesehatan sistem secara terus‑menerus di lingkungan produksi.
Perbedaan dengan print()
Fungsi print(), yang sering dipakai oleh pemula, memang nyaman untuk debugging tetapi memiliki keterbatasan berikut untuk pengembangan serius:
- Tidak dapat secara fleksibel menentukan tujuan output (misalnya file atau layanan eksternal).
- Tidak dapat mengelola level log (tingkat keparahan).
Masalah‑masalah ini dapat diatasi dengan menggunakan modul standar Python logging. 
3. Cara Memulai Logging dengan Modul logging Bawaan Python
Python menyertakan modul bawaan logging, yang memudahkan Anda menghasilkan log. Bagian ini menjelaskan penggunaan dasar.
Ikhtisar Tingkat Log
Modul logging memungkinkan Anda menetapkan “tingkat log” untuk menunjukkan keparahan pesan log. Tingkat log utama meliputi:
- DEBUG : Informasi debug. Berguna selama pengembangan.
- INFO : Pesan informatif. Menunjukkan kemajuan program.
- WARNING : Peringatan. Menunjukkan potensi masalah.
- ERROR : Kesalahan. Menunjukkan bahwa program tidak berfungsi dengan benar.
- CRITICAL : Kesalahan kritis. Menunjukkan kegagalan sistem.
Penggunaan Dasar
Berikut contoh sederhana logging menggunakan modul logging.
import logging
# Basic logging configuration
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# Example output for each log level
logging.debug('This is debug information.')
logging.info('This is an info message.')
logging.warning('This is a warning message.')
logging.error('This is an error message.')
logging.critical('This is a critical error message.')
Penjelasan Kode
basicConfig: Mengonfigurasi output logging. Argumenlevelmemungkinkan Anda menetapkan tingkat log minimum yang akan ditampilkan.- Spesifikasi format : Argumen
formatmemungkinkan Anda menyesuaikan format pesan log. - Contoh:
%(asctime)smewakili stempel waktu,%(levelname)stingkat log, dan%(message)sisi pesan.
4. Cara Mengeluarkan Log ke File dan Konsol di Python
Log dapat disimpan tidak hanya ke layar tetapi juga ke file atau sistem eksternal. Bagian ini menjelaskan cara mengonfigurasi berbagai tujuan output.
Logging ke konsol
Secara default, pengaturan modul logging mengeluarkan log ke konsol.
import logging
logging.basicConfig(level=logging.INFO)
logging.info('Example of logging to the console')
Logging ke file
Untuk merekam log ke file, tentukan argumen filename pada basicConfig.
import logging
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')
logging.info('This is an example of logging to a file.')
Logging ke konsol dan file sekaligus
Saat mengonfigurasi beberapa tujuan output, gunakan handler dari logging.
import logging
# Create a logger
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# Console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# Penanganan File
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.INFO)
# Konfigurasi format handler
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Tambahkan handler ke logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.info('Contoh log yang akan dioutput ke konsol dan file.')

5. Teknik Logging Efektif dalam Proyek Python
Bagian ini menyajikan praktik terbaik logging yang berguna dalam proyek dunia nyata. Pelajari teknik untuk melakukan debug secara efisien dan meningkatkan manajemen log.
Konfigurasi Logging yang Konsisten
Dalam proyek berskala besar, konfigurasi logging yang konsisten sangat penting. Ketika banyak modul atau anggota tim berkolaborasi, menetapkan format dan level log yang seragam memudahkan analisis dan pemecahan masalah. Berikut adalah contoh konfigurasi logging yang konsisten.
import logging
# Fungsi konfigurasi logging umum
def setup_logger(name, log_file, level=logging.INFO):
handler = logging.FileHandler(log_file)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
# Buat logger untuk setiap modul
app_logger = setup_logger('app_logger', 'app.log')
db_logger = setup_logger('db_logger', 'db.log')
# Contoh output log
app_logger.info('Pesan log aplikasi')
db_logger.error('Pesan kesalahan database')
Menggabungkan Penanganan Kesalahan dan Logging
Dalam penanganan kesalahan (exception handling), mencatat informasi dengan tepat memungkinkan Anda dengan cepat memahami detail masalah. Berikut adalah contoh logging ketika sebuah pengecualian terjadi.
import logging
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
try:
# Kode contoh yang menimbulkan kesalahan
1 / 0
except ZeroDivisionError as e:
logging.error(f'Kesalahan pembagian-oleh-nol terjadi: {e}')
Menyertakan Informasi Konteks dalam Pesan Log
Tergantung pada proyek, menyertakan informasi konteks tambahan (misalnya, ID pengguna, ID transaksi) dalam pesan log memungkinkan analisis yang lebih detail.
import logging
logging.basicConfig(filename='context.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
user_id = 12345
transaction_id = 'txn_001'
logging.info(f'ID Pengguna: {user_id}, ID Transaksi: {transaction_id} - Operasi berhasil.')
Penyaringan Log yang Tepat
Ketika volume log yang dihasilkan sangat besar, penggunaan penyaringan untuk menampilkan hanya log yang diperlukan menjadi efektif. Berikut adalah contoh filter khusus.
import logging
class DebugFilter(logging.Filter):
def filter(self, record):
return record.levelno == logging.DEBUG
logger = logging.getLogger('filtered_logger')
handler = logging.StreamHandler()
handler.addFilter(DebugFilter())
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug('Ini adalah log debug.')
logger.info('Ini tidak akan ditampilkan.')
6. Tiga Perpustakaan yang Direkomendasikan untuk Meningkatkan Logging Python
Selain modul logging bawaan Python, terdapat beberapa perpustakaan logging yang berguna. Bagian ini menyoroti tiga yang terutama populer.
Loguru: Perpustakaan logging sederhana untuk pemula
Fitur:
- Instalasi dan penyiapan yang mudah.
- Sintaks yang lebih intuitif dibandingkan
loggingstandar.
Instalasi:
pip install loguru
Penggunaan dasar:
from loguru import logger
logger.info('Ini adalah output log menggunakan Loguru.')
logger.error('Pesan kesalahan juga dapat dilog dengan mudah.')
Logzero: Perpustakaan logging yang ringan dan mudah digunakan
Fitur:
- Mudah disesuaikan.
- Rotasi log bawaan.
Instalasi:
pip install logzero
Penggunaan dasar:
from logzero import logger
logger.info('Log output using Logzero')
logger.warning('This is a warning message.')
Structlog: Perpustakaan khusus untuk logging terstruktur
Fitur:
- Mudah menghasilkan log dalam format JSON.
- Cocok untuk sistem terdistribusi dan lingkungan cloud.
Instalasi:
pip install structlog
Penggunaan dasar:
import structlog
logger = structlog.get_logger()
logger.info('event', user='12345', action='login')

7. Menyelesaikan Pertanyaan tentang Logging Python!
Q1. Mengapa log tidak muncul?
Jawaban:
Pastikan level log sudah diatur dengan tepat. Secara default, hanya log dengan level WARNING atau lebih tinggi yang akan ditampilkan.
Q2. Bagaimana jika file log menjadi terlalu besar?
Jawaban:
Anda dapat menggunakan RotatingFileHandler untuk merotasi file log ketika mencapai ukuran tertentu.
Q3. Bagaimana cara memilih perpustakaan pihak ketiga?
Jawaban:
Pilih berdasarkan ukuran dan kebutuhan proyek Anda. Untuk proyek kecil, Loguru cocok; jika Anda memerlukan logging terstruktur, Structlog lebih tepat.
8. Kuasai logging Python untuk meningkatkan efisiensi pengembangan
Artikel ini mencakup semua hal mulai dari dasar-dasar logging di Python hingga teknik lanjutan dan perpustakaan pihak ketiga yang berguna. Logging yang tepat dapat sangat meningkatkan efisiensi debugging dan akurasi pemantauan sistem. Cobalah mulai hari ini!



