本文目录一览:
- php实现的debug log日志操作类实例
- php 怎么自动触发自定义日志
- php怎么增加log日志来
- php该在哪里写日志?怎么写日志?日志是做什么用的?
- PHP自带的日志是怎么写入和查看的呢
- php实现日志管理(记录用户操作)原理
php实现的debug log日志操作类实例
本文实例讲述了php实现的debug log日志操作类。分享给大家供大家参考,具体如下:
class Tool
{
public static function log($info)
{
$time = date('m-d H:i:s');
$backtrace = debug_backtrace();
$backtrace_line = array_shift($backtrace); // 哪一行调用的log方法
$backtrace_call = array_shift($backtrace); // 谁调用的log方法
$file = substr($backtrace_line['file'], strlen($_SERVER['DOCUMENT_ROOT']));
$line = $backtrace_line['line'];
$class = isset($backtrace_call['class']) ? $backtrace_call['class'] : '';
$type = isset($backtrace_call['type']) ? $backtrace_call['type'] : '';
$func = $backtrace_call['function'];
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/debug.log', "$time $file:$line $class$type$func: $info\n", FILE_APPEND);
}
}
class Action
{
public function a()
{
$this->b();
}
public function b()
{
$this->c();
}
public function c()
{
Tool::log('sdfsdf');
}
}
$action = new Action();
$action->a();
这里再补充一个函数:
function loginfo($format)
{
$args = func_get_args();
array_shift($args);
$d = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 1)[0];
$info = vsprintf($format, $args);
$data = sprintf("%s\n%s,%d:\n%s\n", date("Ymd His"), $d["file"], $d["line"], $info);
file_put_contents(__DIR__."/log.txt", $data, FILE_APPEND);
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP错误与异常处理方法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家PHP程序设计有所帮助。
php 怎么自动触发自定义日志
error_reporting(0); // 关闭错误日志输入
/**定义日志类型触发函数***/
set_exception_handler(array('logClass', "myErrorHandler"));
set_error_handler(array('logClass', "myErrorHandler"));
register_shutdown_function(array('logClass', "handleFatalError"));
php怎么增加log日志来
- 使用指定的文件记录错误报告日志
使用指定的文件记录错误报告日志。如果使用自己指定的文件记录错误日志,一定要确保将这个文件存放在文档根目录之外,以减少遭到攻击的可能。并且该文件一定要让PHP脚本的执行用户(Web服务器进程所有者)具有写权限。假设在Linux操作系统中,将/usr/local/
目录下的error.log
文件作为错误日志文件,并设置Web服务器进程用户具有写的权限。然后在PHP的配置文件中,将error_log
指令的值设置为这个错误日志文件的绝对路径。 需要将php.ini
中的配置指令做如下修改: error_reporting = E_ALL
;将会向PHP报告发生的每个错误display_errors = Off
;不显示满足上条指令所定义规则的所有错误报告log_errors = On
;决定日志语句记录的位置log_errors_max_len = 1024
;设置每个日志项的最大长度error_log = E:/php_log/php_error.log
;指定产生的错误报告写入的日志文件位置 PHP 的配置文件按上面的方式设置完成以后,并重新启动Web服务器。这样,在执行PHP的任何脚本文件时,所产生的所有错误报告都不会在浏览器中显示,而会记录在自己指定的错误日志/usr/local/error.log
中。此外,不仅可以记录满足error_reporting
所定义规则的所有错误,而且还可以使用PHP中的error_log()
函数,送出一个用户自定义的错误信息。
php该在哪里写日志?怎么写日志?日志是做什么用的?
所谓的日志就是记录系统运行状态的数据。 一般是将信息记录到文本文件或数据库中。 比如:
function writeLog($msg){
$logFile = date('Y-m-d').'.txt';
$msg = date('Y-m-d H:i:s').' '.$msg."\r\n";
file_put_contents($logFile, $msg, FILE_APPEND );
}
// 调用上面的函数,写一条信息进日志文件
writeLog('这是测试日志信息');
PHP自带的日志是怎么写入和查看的呢
查看PHP错误日志: 可以在命令行里面输入:
find . -name error.log
tailf -f error.log
写入日志,有固定的函数:
error_log($str, 3, filename)
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
,循环然后和其它信息一起入库或文件。