Kotchasan Framework Documentation
Kotchasan\Logger\FileLogger
Kotchasan\Logger\FileLogger
FileLogger เขียน log messages ลงไฟล์
การใช้งาน
use Kotchasan\Logger\FileLogger;
// สร้าง logger ด้วยไฟล์ default (error_log.php)
$logger = new FileLogger();
// หรือกำหนดชื่อไฟล์เอง
$logger = new FileLogger('application.log');
// บันทึก log
$logger->info('User logged in', ['user_id' => 123]);
$logger->error('Database connection failed');
$logger->debug('Query executed', ['sql' => 'SELECT * FROM users']);Constructor
public function __construct(?string $logFile = null)Parameters:
$logFile- ชื่อไฟล์ log (relative to ROOT_PATH), default:error_log.php
Log Format
[2024-01-15 10:30:45] INFO: User logged in {"user_id":123}
[2024-01-15 10:30:46] ERROR: Database connection failedตัวอย่าง
Application Logger
use Kotchasan\Logger\FileLogger;
class AppLogger
{
private FileLogger $logger;
public function __construct()
{
$this->logger = new FileLogger('app_' . date('Y-m-d') . '.log');
}
public function logRequest(string $method, string $url): void
{
$this->logger->info('Request', [
'method' => $method,
'url' => $url,
'ip' => $_SERVER['REMOTE_ADDR']
]);
}
public function logError(\Throwable $e): void
{
$this->logger->error($e->getMessage(), [
'file' => $e->getFile(),
'line' => $e->getLine(),
'trace' => $e->getTraceAsString()
]);
}
}Error Handler
use Kotchasan\Logger\FileLogger;
$logger = new FileLogger('errors.log');
set_exception_handler(function (\Throwable $e) use ($logger) {
$logger->critical('Uncaught exception', [
'message' => $e->getMessage(),
'file' => $e->getFile(),
'line' => $e->getLine()
]);
});หมายเหตุ
💡 ไฟล์ log ถูกสร้างด้วย
<?php exit() ?>เป็นบรรทัดแรกเพื่อป้องกันการเข้าถึงโดยตรงผ่าน browser