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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
php mssql 时间格式问题
Jan 13 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
PHP实现的观察者模式实例
Jun 21 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
PHP实现常用排序算法的方法
Feb 05 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
php简单压缩css样式示例
2016/09/22 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
详解python Todo清单实战
2018/11/01 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
商务英语专业自荐信
2013/10/14 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
公司借款担保书
2015/09/22 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
2019银行竞聘书
2019/06/21 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android