文档章节

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

BraveGod
 BraveGod
发布于 2016/07/27 16:47
字数 183
阅读 21
收藏 0

/**
 * 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;
    }
}

 

© 著作权归作者所有

BraveGod
粉丝 0
博文 12
码字总数 2301
作品 0
长宁
私信 提问
单块系统分解小结

单块系统把所有不相关的代码放在一起,修改一行代码无法保证对其他部分造成影响。而且为了发布一个小的功能需要整个系统重新部署。 1. 识别系统中的高层限界上下文,比如业务边界。 2. 创建包...

markeloff
2016/05/26
31
0
在 SQL Server 2008 中进行审计

概述:SQL Server 2008在原有基础上增加了新的功能——为企业用户提供审计解决方案。SQL Trace 能够用来解决审计上的许多需求, SQL Server Audit有很多引人入胜的特性,来帮助DBA更便捷地实...

DTC2
2013/02/16
6.3K
5
Kettle 的 Web 端管理工具--Kettle-Manager

平台简介 出发点 专门为kettle这款优秀的ETL工具开发的web端管理工具。 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境...

马进举
2016/11/23
20.7K
6
如何使用Percona Toolkit解决Mysql主从不同步问题(1)

由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类 1:备库写数据 2:执行non-deterministic query 3:回滚掺杂事务表和非事务表的事务 4:binlog或者relay log数...

hashlinux
2016/07/13
0
0
关于Oracle数据库中的undo回滚段

Oracle数据库当中,关于日志与回滚那一部分,与别的数据库确实有很大的不同。为了避免在写日志的同时后台进程对日志文件的读操作,Oracle使用了单独的回滚段来记录“旧”的数据。这样可以达到...

晨曦之光
2012/04/12
72
0

没有更多内容

加载失败,请刷新页面

加载更多

Java格式化解析时间

System.out.println(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now(ZoneOffset.UTC)));DateTimeFormatter DATE_TIME_FORMATTER = new DateTimeFormatterBu......

爱吃窝窝头
24分钟前
3
0
Hive详解

1. Hive基本概念 1.1 Hive简介 1.1.1 什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 1.1.2 为什么使用Hive 直接使用h...

天子剑毅
37分钟前
2
0
MYSQL 常用命令

打开终端,输入如下命令: /usr/local/MySQL/bin/mysql -u root -p 打开终端,输入如下命令: mysql -h 23.106.134.88 -u root -p 123456 mac启动、停止、重启MySql服务 启动MySql服务:sud...

xiaodong16
40分钟前
5
0
哈希

第一个只出现一次的字符的位置

Garphy
今天
25
0
Centos7.7之离线安装kubectl

Centos7.7,kubernates-1.13.5. 我的Centos7.7上已经安装了kubernates 1.13.5,但是没有kubectl命令,手动安装 浏览器中访问https://storage.googleapis.com/kubernetes-release/release/sta......

克虏伯
今天
36
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部