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安装为Apache DSO
Oct 09 PHP
php5 图片验证码实现代码
Dec 11 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 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 session处理的定制
2009/03/16 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python文件处理
2016/02/29 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
大学学年自我鉴定
2013/10/28 职场文书
药品促销活动方案
2014/02/14 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
婚内分居协议书范文
2014/11/26 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers