PSR-3 Logger Interface
มาตรฐาน Logger Interface — เขียน Log ยังไงให้เปลี่ยน library ได้โดยไม่ต้องแก้โค้ด
ปัญหาที่ PSR-3 มาแก้
// ใช้ Monolog ตรงๆ
$logger = new \Monolog\Logger('app');
$logger->pushHandler(new StreamHandler('app.log'));
$logger->info('User logged in', ['user_id' => 1]);
$logger->error('Payment failed', ['order_id' => 123]);1. LoggerInterface — หัวใจของ PSR-3
<?php
namespace Psr\Log;
interface LoggerInterface
{
public function emergency(string|\Stringable $message, array $context = []): void;
public function alert(string|\Stringable $message, array $context = []): void;
public function critical(string|\Stringable $message, array $context = []): void;
public function error(string|\Stringable $message, array $context = []): void;
public function warning(string|\Stringable $message, array $context = []): void;
public function notice(string|\Stringable $message, array $context = []): void;
public function info(string|\Stringable $message, array $context = []): void;
public function debug(string|\Stringable $message, array $context = []): void;
public function log($level, string|\Stringable $message, array $context = []): void;
}2. Log Levels — ใช้ตัวไหนเมื่อไหร่
emergency
alert
critical
error
warning
notice
info
debug
3. Context Array — ข้อมูลเพิ่มเติม
Message Placeholder
4. ใช้กับ Laravel ยังไง
5. เขียน Logger ของเราเอง
6. Config Log Channel ใน Laravel
สรุป
Last updated