Kotchasan Framework Documentation
Kotchasan\Logger\QueryLogger
Kotchasan\Logger\QueryLogger
QueryLogger is a specialized logger for recording database queries with execution time tracking.
Usage
use Kotchasan\Logger\QueryLogger;
use Kotchasan\Logger\FileLogger;
// Create QueryLogger with FileLogger
$fileLogger = new FileLogger('queries.log');
$queryLogger = new QueryLogger($fileLogger, true); // true = track time
// Log query
$startTime = $queryLogger->logQuery('SELECT * FROM users WHERE id = ?', [1]);
// ... execute query ...
$queryLogger->logQueryResult(
'SELECT * FROM users WHERE id = ?',
[1],
$startTime,
10 // affected rows
);Constructor
public function __construct(LoggerInterface $logger, bool $trackTime = true)Main Methods
logQuery()
Log query before execution.
public function logQuery(string $query, array $bindings = []): ?floatlogQueryResult()
Log result after execution.
public function logQueryResult(
string $query,
array $bindings,
?float $startTime,
int $rowCount
): voidgetQueries() / getTotalTime() / getAverageTime()
public function getQueries(): array // All executed queries
public function getQueryCount(): int // Total count
public function getTotalTime(): float // Total time (seconds)
public function getAverageTime(): float // Average time (seconds)Example
Debug Panel
$queryLogger = new QueryLogger(new ConsoleLogger());
// After processing...
echo "Total Queries: " . $queryLogger->getQueryCount() . "\n";
echo "Total Time: " . number_format($queryLogger->getTotalTime() * 1000, 2) . "ms\n";
foreach ($queryLogger->getQueries() as $query) {
echo $query['query'] . " - " . number_format($query['time'] * 1000, 2) . "ms\n";
}Related Classes
- Logger Overview
- [FileLogger]