php的日志记录,php日志记录所有操作记录

本文目录一览:

php网站日志怎么记录

php有自己的日志机制的,去php.ini里配置一项error_log相关的配置项就可以了。

php 数据库操作日志记录

//先创建一个log表,有id, action, username, query, time 等字段,如果需要记录更多,可添加

$query_string = $_SERVER[‘QUERY_STRING’];//查询(query)的字符串,这个最好处理一下

$action = $_REQUEST[‘action’];//操作类型,可以自己定义。比如?action=addid=xx

//$username就是当前操作人的名字了,登录后都有的吧

if(in_array($action, array(‘add’, ‘edit’,’delete’,’update’)))

{

addlog($action,$username,$query_string);

}

function addlog($action,$username,$query_string)

{

//这里可以把时间和$query_string处理一下,插入数据库

$db-query($sql);

}

大致思路就是这样的了,细节还需你自己完善

如何开启PHP日志功能?

在php编程中,对于一些访问没有明显错误提示的php页面,可以通过error_log来做进一步的判定。

但出于种种原因,有些服务器并没有开启PHP的error_log功能。

测试或其它需要时,可以打开一下,方法如下。

编辑php.ini,将log_errors设置为on:

log_errors = On

然后,重启apache即可。

如成功开启,就可以跟踪到对应的错误提示:

[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2

[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2

[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2

[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line

另外,注意在Windows环境下,除了将log_errors设置为on外,还需要定义error_log的路径及文件名:

error_log = d:/temp/error.log

(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)

IIS没有error_log的概念,所以需要另外定义。

thinkphp日志记录文件被存在了什么地方

日志记录\ThinkPHP\Lib\Think\Core\Log.class.php

1、可以在config.php中进行设置,默认为关闭状态。 ‘APP_DEBUG’ = true

打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置如下:

return array(

‘LOG_RECORD’=true, // 进行日志记录

‘LOG_RECORD_LEVEL’ = array(‘EMERG’,’ALERT’,’CRIT’,’ERR’,’WARN’,’NOTIC’,’INFO’,’DEBUG’,’SQL’), // 允许记录的日志级别

‘DB_FIELDS_CACHE’= false, //数据库字段缓存

‘SHOW_RUN_TIME’=true, // 运行时间显示

‘SHOW_ADV_TIME’=true, // 显示详细的运行时间

‘SHOW_DB_TIMES’=true, // 显示数据库查询和写入次数

‘SHOW_CACHE_TIMES’=true, // 显示缓存操作次数

‘SHOW_USE_MEM’=true, // 显示内存开销

‘SHOW_PAGE_TRACE’=true, // 显示页面Trace信息 由Trace文件定义和Action操作赋值

‘APP_FILE_CASE’ = true, // 是否检查文件的大小写 对Windows平台有效

);

注意事项:DB_FIELDS_CACHE数据库字段缓存默认关闭状态,如果开启的话,会在Runtime\Data文件夹下生成文件缓存,并且修改表之后,如新加了字段,这个缓存无法记录你的操作,需要我们手动删除一次,对表的修改才会成功。

将’APP_DEBUG’ = true后,访问页面会出现如下图的DEBUG提示:

如果只想显示一部分提示信息,如运行时间,内存开销等,

可以在config.php中进行相应的设置即可,如:

//’APP_DEBUG’ = true, // 调试模式开关

‘SHOW_RUN_TIME’ = true, //运行时间显示

‘SHOW_ADV_TIME’ = true, //显示详细的运行时间

‘SHOW_DB_TIMES’ = true, //显示数据库的操作次数

‘SHOW_CACHE_TIMES’=true, //显示缓存操作次数

‘SHOW_USE_MEM’ = true, //显示内存开销

提示信息如下图:

2、页面Trace信息的自定义:\ThinkPHP\Tpl\PageTrace.tpl.php

自定义的方法一:在config.php的同级目录加上一个trace.php文件

?php

return array{

‘当前的server信息’=$_SERVER[‘REMOTE_ADDR’],

};

?

自定义的方法二:在Action方法中添加

$this-trace(‘我很丑,但是我很温柔’,’5211314′);

3、输出调试法:

halt(‘aaaaaaa’);//输出aaaaaa并且中断程序执行

4、模型调试:显示SQL语句

$User=new Model(‘User’);

$User-find(1);

echo $User-getLastSql();//输出最后执行的一条SQL语句

5、日志记录\ThinkPHP\Lib\Think\Core\Log.class.php

config.php中设置

‘LOG_RECORD’=true,//开启了日志记录

‘LOG_RECORD_LEVEL’=array(‘EMERG’,’ALERT’

php实现日志管理(记录用户操作)原理

把日志需要保留的数据用json串或xml等数据结构的方式存储起来,调用的时候直接解析这些数据结构即可。

按简单的理解,给各模块的关键步骤起个操作名字,记录一下该操作名,时间,用户,IP等就完了。

单入口模式,这样只需要往index.php加入write_log功能就好了。

至于哪个字段,原值,新值,这个没什么好方法啊,可以引入插件机制,

开个类存储插件方法,命名以module_task为准,比如以上的url就是article_update

那么这个插件类就是

class plugin

{

public $extraLog;

function article_update($field,$old,$new)

{

self::$extraLog = array(‘字段’=$field,’原值’=$old,’新值’=$new);

}

}

这个方法在流程页面进行数据库操作的地方调用,index.php的write_log流程只读plubin::$extraLog,循环然后和其它信息一起入库或文件。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/244705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:03
下一篇 2024-12-12 13:03

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python栈操作用法介绍

    如果你是一位Python开发工程师,那么你必须掌握Python中的栈操作。在Python中,栈是一个容器,提供后进先出(LIFO)的原则。这篇文章将通过多个方面详细地阐述Pytho…

    编程 2025-04-29
  • Cron执行日志用法介绍

    本文将从多个方面对cron执行日志进行详细阐述,包括cron执行日志的定义、cron执行日志的产生原因、cron执行日志的格式以及如何解读cron执行日志。 一、定义 Cron是一…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • Hibernate日志打印sql参数

    本文将从多个方面介绍如何在Hibernate中打印SQL参数。Hibernate作为一种ORM框架,可以通过打印SQL参数方便开发者调试和优化Hibernate应用。 一、通过配置…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • Python代码实现回文数最少操作次数

    本文将介绍如何使用Python解决一道经典的回文数问题:给定一个数n,按照一定规则对它进行若干次操作,使得n成为回文数,求最少的操作次数。 一、问题分析 首先,我们需要了解回文数的…

    编程 2025-04-29
  • Python磁盘操作全方位解析

    本篇文章将从多个方面对Python磁盘操作进行详细阐述,包括文件读写、文件夹创建、删除、文件搜索与遍历、文件重命名、移动、复制、文件权限修改等常用操作。 一、文件读写操作 文件读写…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 使用Snare服务收集日志:完整教程

    本教程将介绍如何使用Snare服务收集Windows服务器上的日志,并将其发送到远程服务器进行集中管理。 一、安装和配置Snare 1、下载Snare安装程序并安装。 https:…

    编程 2025-04-29

发表回复

登录后才能评论