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模板,主要想体现一下思路
Dec 25 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
解析php中如何调用用户自定义函数
Aug 06 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
php实现简单的MVC框架实例
Sep 23 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
php 截取中英文混合字符串的方法
May 31 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
PHP getNamespaces()函数讲解
Feb 03 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 mysql数据库操作分页类
2008/06/04 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
javascript 继承实现方法
2009/08/26 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Linux下Python获取IP地址的代码
2014/11/30 Python
Python实现单词拼写检查
2015/04/25 Python
python 2.7.14安装图文教程
2018/04/08 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
python psutil监控进程实例
2019/12/17 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
社会学专业学生职业规划书
2014/02/07 职场文书
《开国大典》教学反思
2014/04/19 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
大学生读书笔记大全
2015/07/01 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL