给数据库某些特定表的写操作记录到文件的日志功能的静态类
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; } }
相关文章推荐
- logback 打印spring jdbcTemplate SQL日志
- springboot整合mybatis将sql打印到日志
- Laravel给生产环境添加监听事件(SQL日志监听)
- Laravel框架实现的记录SQL日志功能示例
- linux下使用phpize 安装 phpredis扩展
- koajs项目之memcached实现session共享
- PHP的51个Memcached方法(32-41)
- koajs项目之memcached实现session共享
- mybatis+MySQL--CRUD
- 玩转redis
- mysql 查询数据不一样的现象
- ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看
- sql使用tips
- 78.You are managing an Oracle Database 11g database. The database is open, and you plan to perform R
- SQLSERVER:sqlserver2008r2安装好后,自动提示功能不可以使用
- sqlite3数据库单表转存mysql数据库(PHP代码)
- 使用Redis存储Nginx+Tomcat负载均衡集群的Session
- django 使用mysql数据库时,要设置数据库的编码格式
- Mac 下 MySQL 5.7 连接 navicat 中文乱码问题终极解决方案
- SQLserver总结(1)