Kotchasan Framework Documentation

Kotchasan Framework Documentation

Kotchasan\Logger\FileLogger

EN 05 Feb 2026 06:23

Kotchasan\Logger\FileLogger

FileLogger writes log messages to a file.

Usage

use Kotchasan\Logger\FileLogger;

// Create logger with default file (error_log.php)
$logger = new FileLogger();

// Or specify custom file name
$logger = new FileLogger('application.log');

// Log messages
$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 file name (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

Examples

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()
        ]);
    }
}

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()
    ]);
});

Notes

💡 Log files are created with <?php exit() ?> as the first line to prevent direct browser access.