Kotchasan Framework Documentation

Kotchasan Framework Documentation

Kotchasan\Logger\FileLogger

TH 05 Feb 2026 06:23

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

คลาสที่เกี่ยวข้อง