You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
858 B
PHP
38 lines
858 B
PHP
<?php
|
|
|
|
use Proxy\Plugin\AbstractPlugin;
|
|
use Proxy\Event\ProxyEvent;
|
|
|
|
class LogPlugin extends AbstractPlugin {
|
|
|
|
public function onHeadersReceived(ProxyEvent $event){
|
|
|
|
// because this will be included in index.php - php-proxy-app/storage
|
|
$storage_dir = realpath('./storage');
|
|
|
|
if(!is_writable($storage_dir)){
|
|
return;
|
|
}
|
|
|
|
$log_file = $storage_dir.'/'.date("Y-m-d").'.log';
|
|
|
|
$request = $event['request'];
|
|
$response = $event['response'];
|
|
|
|
$data = array(
|
|
'ip' => $_SERVER['REMOTE_ADDR'],
|
|
'time' => time(),
|
|
'url' => $request->getUri(),
|
|
'status' => $response->getStatusCode(),
|
|
'type' => $response->headers->get('content-type', 'unknown'),
|
|
'size' => $response->headers->get('content-length', 'unknown')
|
|
);
|
|
|
|
$message = implode("\t", $data)."\r\n";
|
|
|
|
@file_put_contents($log_file, $message, FILE_APPEND);
|
|
}
|
|
|
|
}
|
|
|
|
?>
|