Dev to webs {Coding…}

บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 3: การใช้งาน Logging

🔹 เกริ่นนำ

Logging คือกระบวนการบันทึกเหตุการณ์ต่าง ๆ ที่เกิดขึ้นในระบบ เช่น error, warning, หรือข้อมูลทั่วไป (info) เพื่อใช้ในการ debug และติดตามพฤติกรรมของระบบ Laravel ใช้ Monolog ซึ่งเป็น library สำหรับจัดการ log แบบยืดหยุ่นและทรงพลัง โดยสามารถเก็บ log ได้หลากหลายรูปแบบ เช่น file, database, Slack หรือ syslog

บทนี้จะสอนวิธีใช้งาน logging ใน Laravel พร้อมเทคนิคการตั้งค่าและจัดการ log ระดับต่าง ๆ

🔸 การเขียน Log เบื้องต้น

use Illuminate\Support\Facades\Log;

Log::info('มีการเข้าสู่ระบบสำเร็จ');
Log::warning('มีความพยายามเข้าระบบผิดพลาด');
Log::error('เกิดข้อผิดพลาดร้ายแรงในระบบ');

🔸 ระดับของ Log

  • emergency
  • alert
  • critical
  • error
  • warning
  • notice
  • info
  • debug
Log::debug('ข้อมูลสำหรับ developer');

🔸 การเปลี่ยน driver และ log channel

ใน .env

LOG_CHANNEL=stack
LOG_LEVEL=debug

ไฟล์ตั้งค่า config/logging.php:

'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single', 'slack'],
    ],
    'slack' => [
        'driver' => 'slack',
        'url' => env('LOG_SLACK_WEBHOOK_URL'),
        'level' => 'critical',
    ],
]

🔸 การเขียน Log พร้อม Context

Log::info('ผู้ใช้เข้าสู่ระบบ', ['user_id' => auth()->id()]);

💡 การบันทึก log ที่ดีช่วยให้วิเคราะห์ปัญหาได้เร็วและแม่นยำ