当我们想跟踪Web应用程序中执行的事件时,我们需要为其保存日志。
主要有2种用于保存日志以跟踪用户事件的方法。一种是保存日志文件,另一种是保存在数据库中。
通常,开发人员将IP地址和请求参数保存在DB中。
在本教程中,我将向您展示如何使用PHP保存完整的日志。
这种方法将帮助您添加与在Web应用程序中执行的特定事件有关的完整信息。
让我们看看如何创建完整的日志。
使用数据库存储自定义日志
您可以使用数据库创建表以保存完整的日志
创建数据库表
我们已经创建了数据库或选择了已经存在的数据库。在此步骤中,我们将创建一个表来存储日志。
您可以复制以下给定的查询,并在PHPMyAdmin的SQL查询选项中使用它来创建表。
CREATE TABLE complete_log(
id int(11) NOT NULL,
userid int(11) DEFAULT NULL,
platform varchar(30) DEFAULT NULL,
server text,
request text,
logtime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP UPDATE CURRENT_TIMESTAMP) ENGINE = InnoDB DEFAULT CHARSET = utf8_general_ci;
向数据库添加日志的功能
在此步骤中,我们创建一个功能文件,该文件包含在要添加日志的每个页面上。
创建一个文件名functions.php
//连接到MySQL数据库
$con = mysqli_connect('host_name','user_name','password','db_name');
if (mysqli_connect_errno($con)) { trigger_error('Database connection failed: ' . mysqli_connect_error()); }
//在每个页面上调用的
function addCompleteLog($postvalues) {
global $con;
$query = "INSERT INTO `complete_log` SET";
foreach ($postvalues as $key => $value) {
$query .= "$key='$value'"; $query .= ","; }
$query = substr($query, 0, -1);
mysqli_query($con, $query);
$this->id = mysqli_insert_id($con);
return $this->id; }
?>
用法
下面的示例说明了如何使用此功能。要添加完整的日志时,请调用该函数。
include_once('functions.php');
$postvalues = new stdClass();
$postvalues->userid = $userid;
$postvalues->server = json_encode($_SERVER);
$postvalues->request = json_encode($_REQUEST);
$postvalues->platform = 'WEB';
$customerdata->addCompleteLog($postvalues);
?>
对于想在日志中存储完整信息的开发人员来说,这种方法非常有用。如果要添加自定义信息,则可以根据需要使用它。
领取专属 10元无门槛券
私享最新 技术干货