Laravel - การจัดการข้อผิดพลาด

เว็บแอปพลิเคชันส่วนใหญ่มีกลไกเฉพาะสำหรับการจัดการข้อผิดพลาด ใช้สิ่งเหล่านี้ติดตามข้อผิดพลาดและข้อยกเว้นและบันทึกเพื่อวิเคราะห์ประสิทธิภาพ ในบทนี้คุณจะได้อ่านเกี่ยวกับการจัดการข้อผิดพลาดในแอปพลิเคชัน Laravel

จุดสำคัญ

ก่อนดำเนินการต่อเพื่อเรียนรู้รายละเอียดเกี่ยวกับการจัดการข้อผิดพลาดใน Laravel โปรดสังเกตประเด็นสำคัญต่อไปนี้ -

  • สำหรับโปรเจ็กต์ใหม่ Laravel จะบันทึกข้อผิดพลาดและข้อยกเว้นในไฟล์ App\Exceptions\Handlerคลาสโดยค่าเริ่มต้น จากนั้นจะส่งกลับไปยังผู้ใช้เพื่อทำการวิเคราะห์

  • เมื่อแอปพลิเคชัน Laravel ของคุณตั้งอยู่ในโหมดดีบักข้อความแสดงข้อผิดพลาดโดยละเอียดพร้อมสแต็กเทรซจะแสดงในทุกข้อผิดพลาดที่เกิดขึ้นภายในเว็บแอปพลิเคชันของคุณ

  • โดยค่าเริ่มต้นโหมดดีบักจะถูกตั้งค่าเป็น false และคุณสามารถเปลี่ยนเป็น true. สิ่งนี้ช่วยให้ผู้ใช้สามารถติดตามข้อผิดพลาดทั้งหมดด้วยสแต็กเทรซ

  • การกำหนดค่าโครงการ Laravel ประกอบด้วยไฟล์ debugตัวเลือกที่กำหนดว่าจะแสดงข้อมูลเกี่ยวกับข้อผิดพลาดให้กับผู้ใช้มากเพียงใด โดยค่าเริ่มต้นในเว็บแอ็พพลิเคชันตัวเลือกจะถูกตั้งค่าเป็นค่าที่กำหนดไว้ในตัวแปรสภาพแวดล้อมของ.env ไฟล์.

    • ค่านี้ตั้งเป็น true ในสภาพแวดล้อมการพัฒนาท้องถิ่นและตั้งค่าเป็น false ในสภาพแวดล้อมการผลิต

    • หากตั้งค่าเป็น true ในสภาพแวดล้อมการผลิตความเสี่ยงในการแบ่งปันข้อมูลที่ละเอียดอ่อนกับผู้ใช้ปลายทางจะสูงกว่า

บันทึกข้อผิดพลาด

การบันทึกข้อผิดพลาดในเว็บแอปพลิเคชันช่วยในการติดตามและวางแผนกลยุทธ์ในการลบข้อผิดพลาด ข้อมูลบันทึกสามารถกำหนดค่าได้ในเว็บแอปพลิเคชันในconfig/app.phpไฟล์. โปรดสังเกตประเด็นต่อไปนี้ในขณะที่จัดการกับ Error Log ใน Laravel -

  • Laravel ใช้ไลบรารีบันทึก PHP คนเดียว

  • พารามิเตอร์การบันทึกที่ใช้สำหรับการติดตามข้อผิดพลาดคือ single, daily, syslog และ errorlog.

  • ตัวอย่างเช่นหากคุณต้องการบันทึกข้อความแสดงข้อผิดพลาดในไฟล์บันทึกคุณควรตั้งค่าบันทึกในการกำหนดค่าแอปของคุณเป็น daily ดังแสดงในคำสั่งด้านล่าง -

'log' => env('APP_LOG',’daily’),
  • ถ้า daily โหมดบันทึกถูกใช้เป็นพารามิเตอร์ Laravel จะบันทึกข้อผิดพลาดเป็นระยะเวลาหนึ่ง 5 days, โดยค่าเริ่มต้น. หากคุณต้องการเปลี่ยนจำนวนไฟล์บันทึกสูงสุดคุณต้องตั้งค่าพารามิเตอร์ของไฟล์log_max_files ในไฟล์คอนฟิกูเรชันเป็นค่าที่ต้องการ

‘log_max_files’ => 25;

ระดับความรุนแรง

เนื่องจาก Laravel ใช้ไลบรารีการบันทึก PHP แบบคนเดียวจึงมีพารามิเตอร์ต่างๆที่ใช้ในการวิเคราะห์ระดับความรุนแรง ระดับความรุนแรงต่างๆที่พร้อมใช้งาน ได้แก่error, critical, alert และ emergency messages. คุณสามารถกำหนดระดับความรุนแรงดังที่แสดงในคำสั่งด้านล่าง -

'log_level' => env('APP_LOG_LEVEL', 'error')