我们有一个在Apache上运行的PHP应用程序,并希望记录所有API请求(GET +参数)。
我看过这篇文章Best way to log POST data in Apache?,其中说:“ GET请求将很容易,因为它们将在apache日志中”。
但是,当我查看日志时,它们不存在。要记录GET请求和查询字符串,我需要哪些服务器日志设置?在https://httpd.apache.org/docs/2.4/logs.html
中未提及如何执行此操作答案 0 :(得分:1)
GET请求记录在访问日志文件中。阅读您提供的文档,尤其是Access Log
部分很重要。
您的Apache主机应配置如下:
LogLevel info
ErrorLog "/private/var/log/apache2/{hostname}-error.log"
CustomLog "/private/var/log/apache2/{hostname}-access.log" combined
然后可以在/private/var/log/apache2/{hostname}-access.log
中找到GET请求
一种用于调试目的的简便方法是编写一个记录POST数据的函数。
function logPost() {
if (isset($_POST && !empty($_POST) {
foreach($_POST as $key => $value) {
error_log('=== _POST REQUEST ===');
error_log('_POST: '.$key.' => '.$value);
}
// OR serialise the data but this is less readable
error_log('=== _POST REQUEST ===');
error_log(serialise($_POST));
}
}
然后可以在/private/var/log/apache2/{hostname}-error.log
中找到POST请求