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 相关文章推荐
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php实现的操作excel类详解
Jan 15 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 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
通过html表格发电子邮件
2006/10/09 PHP
建立文件交换功能的脚本(一)
2006/10/09 PHP
NO3第三帝国留言簿制作过程
2006/10/09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
javascript基本语法分析说明
2008/06/15 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
利用Python爬取可用的代理IP
2016/08/18 Python
老生常谈Python基础之字符编码
2017/06/14 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
numpy实现RNN原理实现
2021/03/02 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
个人租房协议书
2014/04/09 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
民事诉讼代理词
2015/05/25 职场文书
单独二胎证明
2015/06/24 职场文书
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技