🔹 เกริ่นนำ
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 ที่ดีช่วยให้วิเคราะห์ปัญหาได้เร็วและแม่นยำ