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
MayFish PHP的MVC架构的开发框架
Aug 13 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
Win下如何安装PHP的APC拓展
Aug 07 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
隐性调用php程序的方法
Jun 13 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
PHP后期静态绑定实例浅析
Dec 21 PHP
php curl操作API接口类完整示例
May 21 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
详解no input file specified 三种解决方法
Nov 29 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
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
php简单判断文本编码的方法
2015/07/30 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
初识Javascript小结
2015/07/16 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
Python全局变量操作详解
2015/04/14 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python3实现高效的端口扫描
2019/08/31 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
电大毕业个人生自我鉴定
2014/03/26 职场文书
网站美工岗位职责
2014/04/02 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
安全教育主题班会总结
2015/08/14 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
利用Python实现模拟登录知乎
2022/05/25 Python
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android