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 23 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 PHP
PHP实现json_decode不转义中文的方法
May 20 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 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
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
《狼》教学反思
2014/03/02 职场文书
乔迁之喜主持词
2014/03/27 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
圣诞节开幕词
2015/01/29 职场文书
大学生个人学习总结
2015/02/15 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
opencv检测动态物体的实现
2021/07/21 Python