เมื่อใดก็ตามที่เราสร้างซอฟต์แวร์และเรียกใช้ อาจมีข้อผิดพลาดหรือข้อยกเว้นบางประการซึ่งขัดขวางการทำงานตามปกติของซอฟต์แวร์ การบันทึกช่วยให้เราติดตามเหตุการณ์ที่เกิดขึ้นเมื่อซอฟต์แวร์ทำงาน โดยปกติการบันทึกจะมีประโยชน์ในกระบวนการพัฒนาซอฟต์แวร์โดยเฉพาะการดีบักและการรัน หากเราไม่มีสิ่งอำนวยความสะดวกในการบันทึก และโปรแกรมของเราขัดข้อง เราจะระบุสาเหตุของปัญหาได้ยาก เราอาจสามารถระบุปัญหาในโปรแกรมขนาดเล็กได้ แต่ในโลกแห่งความเป็นจริง มีโปรแกรมที่ซับซ้อน ดังนั้นจึงแทบจะเป็นไปไม่ได้เลยที่จะค้นหาปัญหาด้วยตนเอง หากเป็นไปได้ก็ใช้เวลานานมาก
Python มีโมดูลการบันทึกในตัวสำหรับการใช้งานของเรา ซึ่งช่วยแก้ปัญหานี้ของเราได้ การบันทึกเป็นเครื่องมือที่มีประโยชน์มาก ช่วยให้เราเข้าใจขั้นตอนของโปรแกรมดีขึ้น และแจ้งปัญหาหรือสถานการณ์ที่เราอาจไม่ได้คิดขณะพัฒนากระบวนการ
โมดูลการบันทึก
Python มีโมดูลการบันทึกที่พร้อมสำหรับการใช้งานของเรา เราแค่ต้องอิมพอร์ตลงในโปรแกรมของเรา ซึ่งทำได้ตามที่แสดงด้านล่าง
import logging
โมดูลการบันทึกช่วยให้เราเขียนข้อความสถานะไปยังไฟล์หรือสตรีมเอาต์พุตอื่นๆ ไฟล์อาจมีข้อมูลอื่น ๆ รวมถึงส่วนใดของรหัสที่ถูกเรียกใช้และปัญหาที่เกิดขึ้น
ด้วยโมดูลการบันทึก เราสามารถใช้ “คนตัดไม้” เพื่อบันทึกข้อความที่เราต้องการดู โดยค่าเริ่มต้น ข้อความบันทึกมี 5 ระดับซึ่งแสดงถึงความรุนแรงของเหตุการณ์
ต่อไปนี้คือ 5 ระดับที่เรียงลำดับความรุนแรงขึ้น
-
ดีบัก − ใช้เพื่อให้ข้อมูลรายละเอียด ใช้ในการวินิจฉัยปัญหา
-
ข้อมูล − ใช้เพื่อยืนยันว่าสิ่งต่าง ๆ ทำงานอย่างถูกต้องตามที่คาดไว้
-
คำเตือน − ตามชื่อของมัน มันถูกใช้เพื่อส่งข้อความที่แจ้งให้เราทราบถึงปัญหาที่อาจทำให้เกิดปัญหาในอนาคตได้
-
ข้อผิดพลาด − ใช้เพื่อแสดงข้อความแสดงข้อผิดพลาดว่าแอปพลิเคชันหรือซอฟต์แวร์ไม่สามารถทำหน้าที่บางอย่างได้
-
สำคัญ − สิ่งนี้แจ้งถึงปัญหาร้ายแรงซึ่งบ่งชี้ว่าโปรแกรมอาจหยุดทำงาน
โมดูลการบันทึกทำให้เรามีตัวบันทึกเริ่มต้น ซึ่งช่วยให้เราดำเนินการต่อไปได้โดยไม่ต้องมีการกำหนดค่ามากนัก
ตัวอย่าง
import logging logging.debug('This is a debug message') 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 message')
ผลลัพธ์
WARNING:root:This is a warning message ERROR:root:This is an error message CRITICAL:root:This is a critical message
หมายเหตุ: ไม่ได้โหลดข้อความ info() และ debug() เนื่องจากโดยค่าเริ่มต้น ตัวบันทึกจะโหลดข้อความเตือนระดับความรุนแรงขึ้นไป ดังนั้น หากคุณต้องการโหลดข้อความบันทึกที่มีความรุนแรงทั้งหมด คุณต้องกำหนดค่าตัวบันทึกด้วยตนเอง