PHP

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

小樊
85
2024-08-28 17:10:38
栏目: 编程语言

在 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 以记录更多详细信息或自定义日志格式。

0
看了该问题的人还看了