Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การใช้งาน Logging ใน Python: คู่มือครบวงจร

ในบทความนี้ เราจะเรียนรู้เกี่ยวกับโมดูล logging ใน Python ซึ่งเป็นเครื่องมือสำคัญสำหรับการบันทึกข้อความสถานะ การแก้ไขบั๊ก (debugging) และการตรวจสอบความปลอดภัยของโปรแกรม

ระดับความรุนแรง (Severity Levels)

โมดูล logging มี 5 ระดับความรุนแรง เรียงจากต่ำไปสูง:

  • DEBUG - ข้อมูลรายละเอียดสำหรับการแก้ไขบั๊ก
  • INFO - ข้อมูลทั่วไปเกี่ยวกับการทำงานของโปรแกรม
  • WARNING - เหตุการณ์ที่ไม่คาดคิดหรืออาจก่อให้เกิดปัญหาในอนาคต
  • ERROR - ข้อผิดพลาดที่ทำให้ฟังก์ชันบางส่วนทำงานไม่ได้
  • CRITICAL - ข้อผิดพลาดร้ายแรงที่อาจทำให้โปรแกรมหยุดทำงาน

การใช้งานพื้นฐาน

โมดูล logging พร้อมใช้งานทันทีโดยไม่ต้องตั้งค่าก่อน แต่ค่าเริ่มต้นจะแสดงเฉพาะระดับ WARNING ขึ้นไป

ตัวอย่าง

import logging

logging.debug('ข้อความ debug')
logging.info('ข้อความ info')
logging.warning('ข้อความ warning')
logging.error('ข้อความ error')
logging.critical('ข้อความ critical')

ผลลัพธ์ (ค่าเริ่มต้น)

WARNING:root: ข้อความ warning
ERROR:root: ข้อความ error
CRITICAL:root: ข้อความ critical

การตั้งค่าระดับการบันทึก (Basic Configuration)

ใช้ basicConfig() เพื่อกำหนดระดับขั้นต่ำที่จะบันทึก

ตัวอย่าง: บันทึกระดับ DEBUG ขึ้นไป

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('ข้อความนี้จะถูกบันทึกแล้ว')

ผลลัพธ์

DEBUG:root: ข้อความนี้จะถูกบันทึกแล้ว

การบันทึกลงไฟล์ (File Logging)

แทนที่จะแสดงบนคอนโซล สามารถบันทึกลงไฟล์ได้ด้วยพารามิเตอร์ filename, filemode, และ format

ตัวอย่าง

import logging

logging.basicConfig(
    filename='app.log',
    filemode='w',
    format='%(name)s - %(levelname)s - %(message)s'
)
logging.warning('ข้อความนี้จะถูกบันทึกลงไฟล์')

เนื้อหาไฟล์ app.log

root - WARNING - ข้อความนี้จะถูกบันทึกลงไฟล์

หมายเหตุ: filemode='w' จะเขียนทับไฟล์เดิม (ค่าเริ่มต้นคือ 'a' สำหรับ append)

รูปแบบการจัดรูปแบบข้อความ (Format Specifiers)

ตัวแทนความหมาย
%(name)sชื่อของ logger
%(levelname)sระดับความรุนแรง
%(message)sข้อความที่บันทึก
%(asctime)sเวลาที่บันทึก
%(module)sชื่อโมดูล
%(lineno)dหมายเลขบรรทัด

สรุป

โมดูล logging เป็นเครื่องมือที่ทรงพลังและยืดหยุ่นสำหรับการติดตามการทำงานของโปรแกรม การตั้งค่าระดับและรูปแบบที่เหมาะสมจะช่วยให้การแก้ไขบั๊กและการบำรุงรักษาระบบเป็นไปอย่างมีประสิทธิภาพมากขึ้น