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如何解决网站大流量与高并发的问题
Jun 25 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
php递归删除目录与文件的方法
Jan 30 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
PHP crypt()函数的用法讲解
Feb 15 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
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
php商品对比功能代码分享
2015/09/24 PHP
jQuery技巧总结
2011/01/01 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
基于iScroll实现内容滚动效果
2018/03/21 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
Python yield与实现方法代码分析
2018/02/06 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
分析python请求数据
2018/08/19 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Django框架模板用法入门教程
2019/11/04 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
应届生服务员求职信
2013/10/31 职场文书
团员个人的自我评价
2013/12/02 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
信访工作经验交流材料
2014/05/23 职场文书
人事任命书怎么写
2014/06/05 职场文书
2016公司年会通知范文
2015/04/25 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书