php日志函数,PHP错误日志

发布时间:2023-01-09

本文目录一览:

  1. php实现的debug log日志操作类实例
  2. php 怎么自动触发自定义日志
  3. php怎么增加log日志来
  4. php该在哪里写日志?怎么写日志?日志是做什么用的?
  5. PHP自带的日志是怎么写入和查看的呢
  6. 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日志来

  1. 使用指定的文件记录错误报告日志
    使用指定的文件记录错误报告日志。如果使用自己指定的文件记录错误日志,一定要确保将这个文件存放在文档根目录之外,以减少遭到攻击的可能。并且该文件一定要让PHP脚本的执行用户(Web服务器进程所有者)具有写权限。假设在Linux操作系统中,将 /usr/local/ 目录下的 error.log 文件作为错误日志文件,并设置Web服务器进程用户具有写的权限。然后在PHP的配置文件中,将 error_log 指令的值设置为这个错误日志文件的绝对路径。 需要将 php.ini 中的配置指令做如下修改:
  2. error_reporting = E_ALL ;将会向PHP报告发生的每个错误
  3. display_errors = Off ;不显示满足上条指令所定义规则的所有错误报告
  4. log_errors = On ;决定日志语句记录的位置
  5. log_errors_max_len = 1024 ;设置每个日志项的最大长度
  6. 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.phpwrite_log 流程只读 plubin::$extraLog,循环然后和其它信息一起入库或文件。