THINKPHP项目开发中的日志记录实例分析


Posted in PHP onDecember 01, 2014

本文实例讲述了THINKPHP项目开发中的日志记录用法。分享给大家供大家参考。具体方法如下:

1、建立日志表

CREATE TABLE `logs` (  

  `id` int(11) NOT NULL auto_increment,  

  `guid` varchar(100) character set utf8 NOT NULL,  

  `addtime` timestamp NOT NULL default CURRENT_TIMESTAMP,  

  `account` varchar(100) character set utf8 NOT NULL,  

  `nickname` varchar(100) character set utf8 NOT NULL,  

  `app` varchar(100) character set utf8 NOT NULL,  

  `action` varchar(100) character set utf8 NOT NULL,  

  `method` varchar(100) character set utf8 NOT NULL,  

  `query_string` text character set utf8 NOT NULL,  

  `is_desc` varchar(100) character set utf8 NOT NULL,  

  `desc` varchar(100) character set utf8 NOT NULL,  

  `ipaddr` varchar(100) character set utf8 NOT NULL,  

  `unique_flag` varchar(100) character set utf8 NOT NULL,  

  PRIMARY KEY  (`id`)  

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

2、Common/common.php里面进行方法的定义:
function getGlobalSkypeLogDbConfig() {  

 $global_skype_db_config = array(  

     'dbms'          => C('DB_TYPE'),  

     'username' => C('DB_USER'),  

     'password' => C('DB_PWD'),  

     'hostname' => C('DB_HOST'),  

     'database'   => C('DB_NAME'),  

 );  

 return $global_skype_db_config;  

}  

  

function addOperationLog($desc=NULL, $unique_flag='system', $app=APP_NAME, $action=MODULE_NAME, $method=ACTION_NAME) {  

 $global_skype_db_config = getGlobalSkypeLogDbConfig();  

 static $global_skype_log_db_conn;  

 if (!$global_skype_log_db_conn) {  

  $global_skype_log_db_conn = mysql_connect($global_skype_db_config['hostname'], $global_skype_db_config['username'], $global_skype_db_config['password']);  

 }  

 if (!$global_skype_log_db_conn) {  

  die('Mysql_Error:' . __FILE__ . '|' . __LINE__ . '|' . mysql_error());  

 }  

 mysql_query('use ' . $global_skype_db_config['database'], $global_skype_log_db_conn);  

 mysql_query('set names utf8 ', $global_skype_log_db_conn);  

  

 $account = getAdminAccount();  

 $nickname = getAdminNickname();  

 $user_id = getAdminUserId();  

 $ipaddr = get_client_ip();  

 $query_string = print_r(array_merge($_GET, $_POST), true);  

  

 $desc = $desc;  

 $is_desc = 0;  

 $unique_flag = $unique_flag;  

 if ($desc) {  

  $is_desc = 1;  

 }  

  

 $insert_time = date('Y-m-d H:i:s');  

  

 $query = "INSERT INTO `" . C('LOG_DB_TABLE') . "` (`guid`,`account`,`nickname`,`addtime`,`app`,`action`,  

    `method`,`query_string`,`is_desc`,`desc`,`ipaddr`,`unique_flag`) VALUES ('$user_id','$account','$nickname','$insert_time','$app',  

    '$action','$method','$query_string','$is_desc','$desc','$ipaddr','$unique_flag');";  

  

 return mysql_query($query, $global_skype_log_db_conn);  

}  

  

function getAdminAccount() {  

 return $_SESSION['loginAccount'];  

}  

  

function getAdminNickname() {  

 return $_SESSION['loginUserName'];  

}  

  

function getAdminUserId() {  

 return $_SESSION[C('USER_AUTH_KEY')];  

}

在其他操作类里调用addOperationLog();即可

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
php定时执行任务设置详解
Feb 06 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
php生成word并下载代码实例
Mar 15 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
PHP内置的Math函数效率测试
Dec 01 #PHP
php查找字符串出现次数的方法
Dec 01 #PHP
ThinkPHP实现动态包含文件的方法
Nov 29 #PHP
PHP静态文件生成类实例
Nov 29 #PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 #PHP
PHP实现的简单日历类
Nov 29 #PHP
PHP实现货币换算的方法
Nov 29 #PHP
You might like
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python简单遍历字典及删除元素的方法
2016/09/18 Python
Python打包可执行文件的方法详解
2016/09/19 Python
python中字符串内置函数的用法总结
2018/09/13 Python
python解析含有重复key的json方法
2019/01/22 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
abstract是什么意思
2012/02/12 面试题
电子商务专业个人的自我评价分享
2013/10/29 职场文书
环保建议书500字
2014/05/14 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
综合实践活动报告
2015/02/05 职场文书
家属慰问信
2015/02/14 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书