您的位置:首页 > 数据库

给数据库某些特定表的写操作记录到文件的日志功能的静态类

2016-07-27 00:00 190 查看
摘要: 记录数据库某些特定表的写操作sql日志,用来判断数据入库的数据来源,因此写的一个日志静态类。

/**
* Created by PhpStorm.
* User: Fei
* Date: 2016/7/27
* Time: 12:03
*/
class Logs
{
public static $is_open = true;
public static $limit_table = array('zyads_log_hour', 'zyads_stats');

public static function sql_log($sql_type, $table_name, $sql_str){
if(!self::$is_open){
return false;
}

$limit = in_array($table_name, self::$limit_table);
if(!$limit){
return false;
}

$file_path = WWW_DIR.'/var/log/log-'.date('Y-m-d').'.txt';
if (!($fp = @fopen($file_path, 'ab'))) {
return false;
}

$time = date('Y-m-d H:i:s');
$aff_username = isset($_SESSION['affiliate']['username']) ? $_SESSION['affiliate']['username'] : $_REQUEST['username'];
$user = isset($_SESSION['admin']['username']) ? $_SESSION['admin']['username'] : $aff_username;
$data = array(
'log_time'          => $time,
'username'          => $user,
'sql_type'          => $sql_type,
'table_name'        => $table_name,
'sql_str'           => $sql_str
);
$log_info = json_encode($data)."\n\r";
flock($fp, LOCK_EX);
fwrite($fp, $log_info);
flock($fp, LOCK_UN);
fclose($fp);
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息