Kotchasan Framework Documentation
Kotchasan\Logger\FileLogger
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 failedExamples
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.