php httpserver的日志记录功能如何实现

avatar
作者
猴君
阅读量:0

在 PHP 中,使用内置的 HTTP 服务器(如 PHP 5.4+ 的内置 Web 服务器)并不直接提供日志记录功能

  1. 创建一个名为 log.php 的文件,用于处理日志记录:
<?php // log.php  $logFile = 'server.log'; $requestMethod = $_SERVER['REQUEST_METHOD']; $requestUri = $_SERVER['REQUEST_URI'];  // 将请求信息写入日志文件 file_put_contents($logFile, "[$requestMethod] $requestUri" . PHP_EOL, FILE_APPEND); 
  1. 创建一个名为 router.php 的文件,用于路由请求到相应的处理程序:
<?php // router.php  require 'log.php';  $path = $_SERVER['PATH_INFO'] ?? '/';  switch ($path) {     case '/':         require 'index.php';         break;     case '/api/data':         require 'api_data.php';         break;     default:         http_response_code(404);         echo 'Not Found'; } 
  1. 创建一些示例处理程序文件,如 index.phpapi_data.php

  2. 在命令行中启动 PHP 内置 Web 服务器,并将 router.php 作为默认入口文件:

php -S localhost:8000 router.php 

现在,每当有请求发送到服务器时,log.php 都会将请求方法和请求 URI 记录到 server.log 文件中。你可以根据需要修改 log.php 以记录更多详细信息或自定义日志格式。