php实现的debug log日志操作类实例


Posted in PHP onJuly 12, 2016

本文实例讲述了php实现的debug log日志操作类。分享给大家供大家参考,具体如下:

<?php
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 %s,%d: %s\n", date("Ymd His"), $d["file"], $d["line"], $info);
  file_put_contents(__DIR__."/log.txt", $data, FILE_APPEND);
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php中文字符截取防乱码
Mar 28 PHP
php调用mysql数据 dbclass类
May 07 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
php字符串函数学习之substr()
Mar 27 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
简述php环境搭建与配置
Dec 05 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 #PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 #PHP
php处理带有中文URL的方法
Jul 11 #PHP
PHP实现JS中escape与unescape的方法
Jul 11 #PHP
php处理复杂xml数据示例
Jul 11 #PHP
php的debug相关函数用法示例
Jul 11 #PHP
php错误日志简单配置方法
Jul 11 #PHP
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
tensorflow获取变量维度信息
2018/03/10 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
信息管理员岗位职责
2013/12/01 职场文书
新法人代表任命书
2014/06/06 职场文书
应聘教师自荐书
2014/06/16 职场文书
白莲教口号
2014/06/18 职场文书
公司市场部岗位职责
2015/04/15 职场文书
离婚起诉书范本
2015/05/18 职场文书
元宵节晚会主持词
2015/07/01 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python