0Pricing
Python Academy · Pelajaran

Dasar-Dasar Modul logging

Konfigurasikan logger, tetapkan level, dan keluarkan pesan dengan benar.

Dasar-Dasar Modul logging adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Mengapa Pencatatan Log, Bukan Pencetakan?

Modul logging menyediakan tingkat keparahan, tujuan keluaran yang dapat dikonfigurasi, stempel waktu, serta kemampuan untuk membungkam keluaran tanpa mengubah kode.

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")

Tingkat Log

Python mendefinisikan lima tingkat standar dengan tingkat keparahan yang meningkat: DEBUG, INFO, WARNING, ERROR, CRITICAL. Hanya pesan pada atau di atas tingkat yang dikonfigurasi yang akan dikeluarkan.

import logging
# Numeric values:
# DEBUG    = 10
# INFO     = 20
# WARNING  = 30
# ERROR    = 40
# CRITICAL = 50

logging.basicConfig(level=logging.WARNING)
logging.debug("hidden")   # not shown
logging.warning("shown")  # shown

Mendapatkan Logger

Gunakan logging.getLogger(__name__) di setiap modul. Ini membuat hierarki yang sesuai dengan struktur modul.

import logging

logger = logging.getLogger(__name__)

def process(data):
    logger.info("Processing %d items", len(data))
    return [x * 2 for x in data]

Opsi basicConfig

basicConfig mengonfigurasi logger akar dengan cepat. Argumen bernama yang umum: level, format, filename, filemode.

import logging

logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s %(levelname)s %(name)s — %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
)

Kolom Format Log

Kolom format utama: %(levelname)s, %(name)s, %(message)s, %(asctime)s, %(filename)s, %(lineno)d.

import logging

fmt = "%(asctime)s | %(levelname)-8s | %(name)s:%(lineno)d | %(message)s"
logging.basicConfig(level=logging.DEBUG, format=fmt)
logging.info("Server started on port 8080")

Mencatat Pengecualian

Gunakan logger.exception() di dalam blok except untuk mencatat pesan AND jejak balik lengkap.

import logging
logger = logging.getLogger(__name__)

try:
    1 / 0
except ZeroDivisionError:
    logger.exception("Division failed")
    # Logs message + traceback automatically

Konteks Tambahan dengan extra=

Teruskan dict sebagai extra= untuk menambahkan kolom kustom ke catatan log.

import logging
logger = logging.getLogger(__name__)

logging.basicConfig(
    format="%(asctime)s %(levelname)s [%(user)s] %(message)s"
)
logger.info("Login successful", extra={"user": "alice"})

Pemformatan String Tertunda

Teruskan argumen format secara terpisah—jangan memformat string terlebih dahulu. Ini menghindari biaya pembuatan string saat pesan disaring.

import logging
logger = logging.getLogger(__name__)

# BAD (always builds the string):
logger.debug(f"Processing {len(data)} items")

# GOOD (only builds if DEBUG is enabled):
logger.debug("Processing %d items", len(data))

Menonaktifkan Pencatatan Log

Panggil logging.disable(level) untuk membungkam semua pesan hingga tingkat tersebut secara global—berguna dalam pengujian.

import logging

logging.disable(logging.CRITICAL)  # suppress everything
# All log calls now silently do nothing

logging.disable(logging.NOTSET)    # re-enable

Hierarki Logger

Nama logger menggunakan titik sebagai pemisah. Logger anak meneruskan catatan ke logger induk kecuali propagate=False.

import logging

parent = logging.getLogger("myapp")
child = logging.getLogger("myapp.database")

# child propagates to parent by default
child.warning("DB slow")  # also appears in myapp's handlers

Logger Akar

Logger akar (dari logging.warning() dan sebagainya) merupakan leluhur semua logger. Konfigurasikan dengan basicConfig atau dengan menambahkan penangan secara langsung.

import logging

root = logging.getLogger()  # root logger
root.setLevel(logging.DEBUG)

handler = logging.StreamHandler()
root.addHandler(handler)

Pemeriksaan Singkat

Metode logging mana yang sebaiknya digunakan di dalam blok except agar jejak balik lengkap disertakan secara otomatis?

Ringkasan

Gunakan logger bernama dengan getLogger(__name__), lakukan konfigurasi melalui basicConfig, teruskan argumen format secara tertunda, dan gunakan logger.exception() untuk jejak balik kesalahan. Logger membentuk hierarki yang berakar pada logger akar.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar Modul logging” gratis?

Ya — teks lengkap “Dasar-Dasar Modul logging” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Dasar-Dasar Modul logging”?

Konfigurasikan logger, tetapkan level, dan keluarkan pesan dengan benar. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Dasar-Dasar Modul logging” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar Modul logging
  2. Handler, Formatter, dan Filter
  3. Logging Terstruktur
  4. Debugging dengan pdb
← Kembali ke Python Academy