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实现文件上传二法
Oct 09 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
PHP调用三种数据库的方法(2)
2006/10/09 PHP
php 无限极分类
2008/03/27 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
php实现文件下载代码分享
2014/08/19 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
Yii配置文件用法详解
2014/12/04 PHP
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
JSON的parse()方法介绍
2019/01/31 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
Python实现的简单模板引擎功能示例
2017/09/02 Python
python3.6实现学生信息管理系统
2019/02/21 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Python常用断言函数实例汇总
2020/11/30 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
工商管理系学生的自我评价分享
2013/11/29 职场文书
南京青奥会口号
2014/06/12 职场文书
授权委托书(完整版)
2014/09/10 职场文书
公司人事任命通知
2015/04/20 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB