如何在不使用任何框架的情况下在PHP Web服务上记录请求和错误 我正在为一个web应用程序开发一个PHP后端API服务器, 其中包含50多个PHP API 现在我需要的是 需要记录所有请求以及这些API出现的错误 我没有使用任何框架 我已经创建了自己的日志代码 下面给出的请求

如何在不使用任何框架的情况下在PHP Web服务上记录请求和错误 我正在为一个web应用程序开发一个PHP后端API服务器, 其中包含50多个PHP API 现在我需要的是 需要记录所有请求以及这些API出现的错误 我没有使用任何框架 我已经创建了自己的日志代码 下面给出的请求,php,error-logging,Php,Error Logging,//*************PHP API请求日志代码***************** 函数日志数据 { 现在,将所有API的请求信息和错误日志一起记录到服务器本身的文件中的最佳方法是什么 在没有任何框架的情况下,您可以将默认php函数用于: 根据错误报告级别,为通知、警告、弃用等设置_error_handler() 针对致命错误注册\u shutdown\u函数() 为异常设置异常处理程序() 然后您可以将这些信息存储在文本文件或数据库中 设置错误处理程序的示例: set_error_

//*************PHP API请求日志代码*****************

函数日志数据 {

  • 现在,将所有API的请求信息和错误日志一起记录到服务器本身的文件中的最佳方法是什么

  • 在没有任何框架的情况下,您可以将默认php函数用于:

    • 根据错误报告级别,为通知、警告、弃用等设置_error_handler()
    • 针对致命错误注册\u shutdown\u函数()
    • 为异常设置异常处理程序()
    然后您可以将这些信息存储在文本文件或数据库中

    设置错误处理程序的示例:

    set_error_handler(function ($errno, $errstr, $errfile, $errline) {
        // do your custom error handling        
    });
    
    寄存器\u关闭\u处理程序示例:

    register_shutdown_function(function () {
        $error = error_get_last();
        // $error should be array containing 'message', 'file', 'line' etc...
    });
    
    您可以设置为捕获错误和警告,如BenRoob的响应中所述。但请注意,您的代码易受攻击:

    • 记录毒药:攻击者可以在您的日志中插入代码,利用其他类型的漏洞进行攻击(如)
    要解决第一个问题,您可以使运行PHP的用户无法访问日志文件(例如,仅授予其写访问权限)
    对于第二种情况,只需从用户输入中转义所有PHP\u EOL。

    感谢您的帮助。如果它只有一个入口点(例如index.PHP)您可以在那里记录请求,还可以查看这些函数
    register\u shutdown\u function
    set\u error\u handler
    set\u exception\u handler
    ,您可以在我的github上看到一些如何使用这些函数的示例,尽管这是我正在编写的更大框架的一部分。
    register_shutdown_function(function () {
        $error = error_get_last();
        // $error should be array containing 'message', 'file', 'line' etc...
    });