THINKPHP项目开发中的日志记录实例分析_php实例

本文实例讲述了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框架程序设计有所帮助。

时间: 2024-09-11 11:02:08

THINKPHP项目开发中的日志记录实例分析_php实例的相关文章

PHP中错误与异常的日志记录用法分析_php技巧

本文分析了PHP中错误与异常的日志记录用法.分享给大家供大家参考,具体如下: 提到 Nginx + PHP 服务的错误日志,我们通常能想到的有 Nginx 的 access 日志.error 日志以及 PHP 的 error 日志.虽然看起来是个很简单的问题,但里面其实又牵扯到应用配置以及日志记录位置的问题,如果是在 ubuntu 等系统下使用 apt-get 的方式来安装,其自有一套较为合理的的配置文件可用.再者运行的应用程序中的配置也会影响到日志记录的方式及内容. 错误与异常的区别 关于错误

thinkphp3.x中session方法的用法分析_php实例

本文实例讲述了thinkphp3.x中session方法的用法.分享给大家供大家参考,具体如下: 一.Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 session($name, $value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的sessio

Symfony2开发之控制器用法实例分析_php实例

本文实例分析了Symfony2开发之控制器用法.分享给大家供大家参考,具体如下: 控制器是PHP函数,通过它,你可以根据HTTP请求创建任务信息,并且构建和返回HTTP响应.响应可以是HTML页面.XML文档.序列化的JSON数组.图片.重定向.404错误甚至是你可以想到的一切.控制器中包含了你应用程序需要创建响应的抽象逻辑. 接收请求,返回响应的基本生命周期 1.每个请求都被单个前端控制器(如app.php或index.php)文件处理,前端控制器负责引导框架: 2.路由查看并匹配请求信息,并

thinkphp3.x中cookie方法的用法分析_php实例

本文实例分析了thinkphp3.x中cookie方法的用法.分享给大家供大家参考,具体如下: 一.cookie函数也是一个多元化操作函数,完成cookie的设置.获取和删除操作. Cookie 用于Cookie 设置.获取.删除操作: 用法: cookie($name, $value='', $option=null) 参数:  name(必须):要操作的cookie变量 value(可选):要设置的cookie值 option(可选):传入的cookie设置参数,默认为空 返回值 见详(根据

thinkPHP线上自动加载异常与修复方法实例分析_php实例

本文实例讲述了thinkPHP线上自动加载异常与修复方法.分享给大家供大家参考,具体如下: 项目遇到一个奇怪的问题,本地代码正常,服务器上却不正常. 经过测试,应该是自动加载出了问题,尝试了各种方法, 1.手动加载,发现好麻烦,没完没了. 2.自己写自动加载,写不出来,尴尬. 3.修改配置,使其支持自动加载,发现还是不行. 后来进行调试, 发现本地支持 import('@.ORG.OSS\OssClient'); import('@.ORG.OSS\Core\OssUtil'); 而服务器上,不

Yii2中Restful API原理实例分析_php实例

本文实例分析了Yii2中Restful API原理.分享给大家供大家参考,具体如下: Yii2 有个很重要的特性是对 Restful API的默认支持, 通过短短的几个配置就可以实现简单的对现有Model的RESTful API 这里通过分析rest部分源码,简单剖析下yii2 实现 restful 的原理,并通过一些定制实现 对 关联模型的RESTful api 操作. ~ 代表 extends from 的关系 | | rest/ | | |-Action.php ~ `\yii\base\

thinkphp连贯操作实例分析_php实例

本文实例分析了thinkphp连贯操作用法.分享给大家供大家参考.具体分析如下: 一.常用连贯操作,可以接连使用但没前后顺序之分,后面一定要有方法select,updata,delete,find 1.where:帮助我们设置查询条件 2.order:对结果进行排序 复制代码 代码如下: $arr=$m->order('id desc')->select();//字符串方法,默认是asc升序排列,加desc改为降序排列  $arr=$m->order(array('id'=>'de

CodeIgniter配置之config.php用法实例分析_php实例

本文实例分析了CodeIgniter配置之config.php用法.分享给大家供大家参考,具体如下: 配置说明 $config['language']:指定项目语言包.需要注意的时Codeigniter自带的类库错误提示语言包位于/system/language/english/目录下,当这里配置非english时, 如果需要用到这些类库,则需要拷贝语言包到指定的目录中,否则会出现load出错. $config['charset']:设置系统使用的编码,在某些需要指定编码的函数中会用到,系统.数

Yii实现MySQL多数据库和读写分离实例分析_php实例

本文实例分析了Yii实现MySQL多数据库和读写分离的方法.分享给大家供大家参考.具体分析如下: Yii Framework是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.Yii提供了今日Web 2.0应用开发所需要的几乎一切功能,也是最强大的框架之一,下文我们来介绍Yii实现MySQL多库和读写分离的方法 前段时间为SNS产品做了架构设计,在程序框架方面做了不少相关的压力测试,最终选定了YiiFramework,至于为什么没选用公司内部的 PHP框架,其实理由很充分,公司的框