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新手上路(九)
Oct 09 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 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后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php异常处理方法实例汇总
2015/06/24 PHP
详解PHP数组赋值方法
2015/11/07 PHP
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
Python应用库大全总结
2018/05/30 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
自荐信如何“自荐”
2013/10/24 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
股份转让协议书
2014/04/12 职场文书
体育口号大全
2014/06/18 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书