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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
Smarty3配置及入门语法
Feb 22 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
图形数字验证代码
2006/10/09 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
php URL验证正则表达式
2011/07/19 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
python实现简单socket通信的方法
2016/04/19 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
银行求职信个人范文
2013/12/16 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
作息时间调整通知
2015/04/22 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书