【问题标题】:Is it possible to log the IP address in php error_log?是否可以在 php error_log 中记录 IP 地址?
【发布时间】:2011-07-08 06:13:23
【问题描述】:

我已经使用 PHP 多年,直到现在才真正考虑过这个问题。显然有自定义格式显示apache日志,但是php.ini的php的error_log有什么可以做的吗?

我想记录原始错误的 IP 地址,而无需修改我网站上的每个功能并包括 error_log($_REQUEST['REMOTE_ADDR'].' error etc');

有人见过这样的吗?

【问题讨论】:

  • 您可以像使用 error_log() 函数一样手动插入 IP,但是 PHP 中没有选项可以使用 IP 记录内部生成的错误。并非所有脚本都在网络服务器下运行,因此 IP 地址不可用。
  • 如何使用自定义错误处理程序进行日志记录?
  • Pekka 是对的,使用您的自定义错误处理程序,您可以做任何您想做的事情:记录 REMOTE_ADDR、HTTP_USER_AGENT、REQUEST_URI、HTTP_REFERER、HTTP_X_FORWARDER_FOR 等,将这些错误发送到您的电子邮件,重定向用户等。跨度>

标签: php logging ip-address error-log


【解决方案1】:

Apache 应该为你记录这个。

这是我的一个 php 站点的错误日志中的一个示例:

[Thu Mar 03 06:32:29 2011] [error] [client 188.226.15.54] PHP Notice: Undefined variable: profileRow in /public/html/mysite/profile.php on line 22

在我的 httpd.conf 文件中,我为站点定义了以下内容

ErrorLog /var/log/apache2/mysite.com.error.log

假设您为 php 设置了正确的错误级别,您应该会在此处看到您的错误。

【讨论】:

  • 我在 apache 中打开了日志,但它只记录 apache 错误,而不是 php 错误。我正在查看 php 错误日志文件,其中显示了很多错误,但 apache ErrorLog 中没有显示
猜你喜欢
  • 2014-12-27
  • 2012-03-06
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2016-01-28
  • 1970-01-01
相关资源
最近更新 更多