`
cwqcwk1
  • 浏览: 86790 次
文章分类
社区版块
存档分类
最新评论

php调试和日志记录函数

 
阅读更多

网站程序开发过程经常需要调试,发布阶段也需要记录运行日志,方便发现问题和还原事件。这就要求有调试和日志记录功能。

下面分别写了用于调试的函数和用于记录错误的函数。

使用方法很简单,且自动根据日期生成日志文件:

//调试时,多个参数都可以:
sysdebug("hello");
sysdebug("hello", "tiger is coming now");

//错误记录也一样:
syserror("error");
syserror("error", "unfortunately tiger is dead ", "we are sad");

php调试和日志记录函数,如下:

/**
 * 记录调试信息
 */
function sysdebug($msg) {
  if (defined("DEBUG_MODE")) {
    //TODO 检测调试开关,发布时不打印
    $params = func_get_args();
    $traces = debug_backtrace();
    $trace = array_pop($traces);
    sysrecord($params, $trace, 'debug');
  }
}

/**
 * 记录错误信息
 */
function syserror($msg) {
  $params = func_get_args();
  $traces = debug_backtrace();
  $trace = array_pop($traces);
  sysrecord($params, $trace, 'error');
}

/**
 * 写文件
 * @ignore
 */
function sysfile($filename, $msg, $mode = null) {
  $path = dirname($filename);
  if (!file_exists($path)) {
    mkdir($path, 0666, true);
  }
  $flag = LOCK_EX;
  if ($mode) {
    switch ($mode) {
      case "add":
        $flag = FILE_APPEND | LOCK_EX;
        break;
      case "a":
        $flag = FILE_APPEND | LOCK_EX;
        break;
      default:
        break;
    }
  }
  file_put_contents($filename, $msg, $flag);
}

/**
 * 记录信息
 * @ignore
 */
function sysrecord($params, $trace, $level) {
  $path = dirname(__FILE__) . "/logs/";
  //TODO 日志保存目录最好修改一下
  
  $file = $trace['file'];
  $func = $trace['function'];
  if ($func == "sys$level") {
    $func = '';
  }
  $filename = $path . "$level/" . date("Y-m-d") . '.log';
  $msg = "[" . date("m-d H:i:s") . "] File:\"" . basename($file) . "\" Func:\"" . $func . "\" Msg:" . json_encode($params) . "\r\n";
  sysfile($filename, $msg, 'add');
}
分享到:
评论

相关推荐

    PHP调试函数和日志记录函数分享

    网站程序开发过程经常需要调试,发布阶段也需要记录运行日志,方便发现问题和还原事件。这就要求有调试和日志记录功能。 下面分别写了用于调试的函数和用于记录错误的函数。...php调试和日志记录函数

    php 函数记录 及日期函数

    总结来说,PHP的日期函数如`strtotime()`和`date()`对于处理时间数据非常有用,而通过自定义日志或调试函数,我们可以轻松记录函数的使用情况,以供后续分析和优化。在实际开发中,了解并熟练运用这些工具和技巧,能...

    php实现的简单日志写入函数

    在PHP编程中,日志记录是一项非常重要的任务,它能够帮助开发者追踪程序运行的状态,定位错误,以及在必要时进行调试。本篇文章将详细介绍如何使用PHP实现一个简单的日志写入函数。 首先,我们来看一下给出的代码...

    php代码调试工具

    尽管没有提供具体工具的详细信息,我们可以探讨一些常用的PHP调试工具和调试技巧。 首先,Xdebug是最知名的PHP调试扩展之一,它提供了断点、步进执行、查看变量值、分析性能等功能。安装Xdebug后,开发者可以通过...

    PHP调试工具 PHP debug tools v1.03

    5. 日志记录:工具还支持自定义日志记录,可以将关键操作或错误信息写入日志文件,便于后期分析和排查问题。 6. 调试器集成:PHP Debug Tools可能集成了像Xdebug这样的调试器,使得远程调试变得轻松,开发者可以在...

    php调试程序技术

    配置,如`error_reporting`、`display_errors`、`log_errors`和`error_log`,我们可以控制错误的显示和记录方式。这在处理语法级别和运行时错误时非常有用。 PHP中的错误抛出和处理允许开发者主动触发和捕获错误。`...

    PHP代码调试工具

    9. Web服务器日志:Apache和Nginx等Web服务器也有自己的日志系统,记录了请求处理的详细信息,对于排查服务器相关的问题非常有帮助。 10. IDE集成:现代IDE如PhpStorm、Visual Studio Code等,都有强大的PHP调试...

    php 魔术函数和常量一览表

    3. **\_\_FUNCTION__**:包含正在执行的函数名称(仅适用于函数内),可用于日志记录或调试。 4. **\_\_CLASS__**:包含当前类的名称(仅适用于类内),有助于类的自我识别和动态行为。 5. **\_\_METHOD__**:包含...

    php基于自定义函数记录log日志方法

    文档中还提到了如何使用var_export()函数和error_log()函数,以及它们的详细用法。例如,var_export()函数通常用于输出变量的结构信息,而error_log()函数则可以用于将错误信息发送到不同的目的地,比如到PHP邮件、...

    PHP 日志缩略名的创建函数代码

    您可能感兴趣的文章:php实现的简单日志写入函数PHP调试函数和日志记录函数分享php基于自定义函数记录log日志方法php error_log 函数的使用PHP error_log()将错误信息写入一个文件(定义和用法)PHP中error_log()函数...

    php调试插件FirePHP类库

    2. **日志记录**:开发者可以使用FirePHP记录调试信息,如函数调用、数据处理等,便于跟踪代码执行流程。 3. **变量查看**:FirePHP可以将PHP变量的值以易于理解的形式展示出来,包括数组、对象等复杂类型。 4. **...

    php调试技术文档

    3. 日志记录:通过error_log函数或自定义的日志系统,记录程序运行过程中的异常和信息,便于后期排查问题。 二、断点调试 1. echo和var_dump:简单的调试方法,可以在代码关键位置插入echo或var_dump,输出变量值,...

    PHP中文调试技术手册(PHP-Debug-Manual-public)

    内置API输出调试是PHP调试中最简单也是最直接的方法,主要依赖于PHP内置的函数和配置来进行。 1.1 基本调试API 1.1.1 echo (print): echo和print是PHP中最基本的输出函数,主要用于输出字符串。在调试过程中,可以...

    thinkphp6自定义日志记录

    日志记录是应用程序中不可或缺的部分,它可以帮助开发者追踪程序运行状态,定位错误和异常,优化性能。本文将详细探讨在ThinkPHP6中如何自定义日志记录。 首先,理解ThinkPHP6的日志系统。框架默认集成了多种日志...

    基于PHP的Essay php+html日志程序.zip

    5. 错误处理和异常处理:PHP提供了丰富的错误处理机制,包括错误报告级别、错误处理函数和异常处理。通过设定合适的错误报告级别,开发者可以选择在发生错误时记录或显示信息,以帮助调试。 6. 安全性:在实现日志...

    PHP格式化输出函数

    无论是用于调试、日志记录还是数据展示,掌握如何有效地使用这类函数都将极大提升我们的编程效率和项目质量。通过灵活配置函数参数,开发者可以根据具体需求定制最合适的输出形式,使代码更加健壮、易于维护。

    PHP 魔术变量和魔术函数详解_.docx

    它们可以帮助我们轻松地获取关于代码执行状态的详细信息,比如文件位置、类或函数名,这对于调试、日志记录以及实现特定的编程逻辑非常有用。然而,由于它们的特殊性,过度依赖或误用这些特性也可能导致难以预料的副...

    phpdebug调试库

    调试库通常包含错误日志记录功能,将错误信息、警告和通知写入日志,便于后期分析。这在生产环境中尤其重要,因为错误信息可能不会直接显示在用户界面中。 ### 6. **代码覆盖率分析** 为了确保测试的全面性,调试库...

    chrome PHP调试库文件

    而Chrome PHP调试库就是PHP端与Chrome Logger通信的桥梁,它提供了一系列的PHP函数,用于发送各种类型的数据(如文本、对象、错误信息等)到浏览器,这样开发者就可以实时监控和分析PHP脚本的运行状态。 要开始使用...

Global site tag (gtag.js) - Google Analytics