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生成随机数或者字符串的代码
Sep 05 PHP
memcache命令启动参数中文解释
Jan 13 PHP
php实现网站留言板功能
Nov 04 PHP
php表单提交实例讲解
Nov 12 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 PHP
PHP扩展类型及安装方式解析
Apr 27 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
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
简单的Python的curses库使用教程
2015/04/11 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
python批量下载抖音视频
2019/06/17 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
经典而简洁的婚礼主持词
2014/03/13 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis