php httpserver的日志記錄功能如何實(shí)現(xiàn)

PHP
小樊
83
2024-08-28 17:10:38
欄目: 編程語言

在 PHP 中,使用內(nèi)置的 HTTP 服務(wù)器(如 PHP 5.4+ 的內(nèi)置 Web 服務(wù)器)并不直接提供日志記錄功能

  1. 創(chuàng)建一個(gè)名為 log.php 的文件,用于處理日志記錄:
<?php
// log.php

$logFile = 'server.log';
$requestMethod = $_SERVER['REQUEST_METHOD'];
$requestUri = $_SERVER['REQUEST_URI'];

// 將請(qǐng)求信息寫入日志文件
file_put_contents($logFile, "[$requestMethod] $requestUri" . PHP_EOL, FILE_APPEND);
  1. 創(chuàng)建一個(gè)名為 router.php 的文件,用于路由請(qǐng)求到相應(yīng)的處理程序:
<?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. 創(chuàng)建一些示例處理程序文件,如 index.phpapi_data.php。

  2. 在命令行中啟動(dòng) PHP 內(nèi)置 Web 服務(wù)器,并將 router.php 作為默認(rèn)入口文件:

php -S localhost:8000 router.php

現(xiàn)在,每當(dāng)有請(qǐng)求發(fā)送到服務(wù)器時(shí),log.php 都會(huì)將請(qǐng)求方法和請(qǐng)求 URI 記錄到 server.log 文件中。你可以根據(jù)需要修改 log.php 以記錄更多詳細(xì)信息或自定義日志格式。

0