// ************** PHP API请求日志代码*****************
函数log_data {
$req_dump = json_encode($_REQUEST);
$actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$filename = str_replace(" ", "_", $_FILES['userfile']['name']);
$log = "------------------------------------------------------------".PHP_EOL.
"UserIP: ".$_SERVER['REMOTE_ADDR'].' - '.date("F j, Y, g:i a").PHP_EOL.
"Request Data: ".$req_dump.PHP_EOL.
"Request Method: ".$_SERVER['REQUEST_METHOD'].PHP_EOL.
"API URL: ".$actual_link.PHP_EOL.
"File Name: ".$filename.PHP_EOL.
"------------------------------------------------------------".PHP_EOL;
}
// $fp = fopen('../api_logs/request.txt', 'a');
// $fw = fwrite($fp, $log);
// fclose($fp);
$fp = file_put_contents( '../api_logs/request.log', $log, FILE_APPEND);
// **************PHP API Request Log Code*****************
答案 0 :(得分:1)
没有任何框架,您可以使用error handling的默认php函数:
然后,您可以将这些信息存储在文本文件或数据库中。
set_error_handler的示例:
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
// do your custom error handling
});
register_shutdown_handler示例:
register_shutdown_function(function () {
$error = error_get_last();
// $error should be array containing 'message', 'file', 'line' etc...
});
答案 1 :(得分:1)
您可以设置PHP error handlers来捕获错误和警告,如BenRoob的回复中所述。但请注意,您的代码易受攻击:
要修复第一个,您可以使运行PHP的用户无法访问日志文件(例如,仅为其提供写访问权限) 对于第二个,只需从用户输入中转义所有PHP_EOL。