php - 代码点火器如何在点击任何页面或 url 时将浏览器信息和 url 保存在错误日志文件中?
问题描述
我在代码点火器中创建了错误日志文件,它工作正常。找不到页面的大部分错误,例如
错误 - 2020-09-26 00:16:33 --> 404 页面未找到:供应商/phpunit 错误 - 2020-19-26 15:23:10 --> 404 页面未找到:Wp-content/plugins
我需要跟踪这些网址的点击位置。所以我想将 url 和用户代理保存在日志文件中。可以在代码点火器中使用吗?我正在尝试在库文件夹中创建一个日志文件,这是我的代码
class MY_Log extends CI_Log
{
function MY_Log ()
{
parent::__construct();
$this->ci =& get_instance();
}
public function write_log()
{
if ($this->_enabled === FALSE)
{
return FALSE;
}
$level = strtoupper($level);
if ( ! isset($this->_levels[$level]) OR
($this->_levels[$level] > $this->_threshold))
{
return FALSE;
}
/* HERE YOUR LOG FILENAME YOU CAN CHANGE ITS NAME */
$filepath = $this->_log_path.'log-'.date('Y-m-d').EXT;
$message = '';
if ( ! file_exists($filepath))
{
$message .= "<"."?php if ( ! defined('BASEPATH'))
exit('No direct script access allowed'); ?".">\n\n";
}
if ( ! $fp = @fopen($filepath, FOPEN_WRITE_CREATE))
{
return FALSE;
}
$message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' ';
$message .= date($this->_date_fmt). ' --> '.$msg."\n";
log_message('error','custom error');
flock($fp, LOCK_EX);
fwrite($fp, $message);
flock($fp, LOCK_UN);
fclose($fp);
@chmod($filepath, FILE_WRITE_MODE);
return TRUE;
}
}
但它不起作用。
解决方案
查看您的错误日志
错误 - 2020-09-26 00:16:33 --> 404 页面未找到:供应商/phpunit 错误 - 2020-19-26 15:23:10 --> 404 页面未找到:Wp-content/plugins
这些是在网站中寻找安全漏洞的常见机器人,在已发布的 url 上很常见。我建议您改为查看 apache 的错误日志,通常会从那里记录代理和 IP 地址,如果您的服务器上有防火墙,则可以阻止这些 IP。
如果您在 centos 上使用 apache,请在以下位置查找文件:
/var/log/httpd/error_log
推荐阅读
- oracle - 'Oracle.DataAccess, Version=2.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342' 或其依赖项之一
- python - 如何在点击时获得最近的 tkinter 画布元素?
- ag-grid - 默认定义 columnDefs
- javascript - 创建一个在计时器上运行的数字序列函数
- java - JAVA 反射将对象转换为由特定超类型名称给出的类
- elasticsearch - 如何对复合聚合中的术语聚合的文档计数进行排序?
- python - 通过一组槽尽可能均匀地分配整数数量
- openssl - 使用 OpenSSL 如何针对一个证书(而不是整个链)验证时间戳令牌
- fortran - 除以零时的无穷大符号
- reactjs - Material UI Grid 组件将第二列填充到容器末尾