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中文件上传的一个问题
Sep 04 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
PHP json_decode函数详细解析
Feb 17 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
Jan 22 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 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.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
js 字符串转换成数字的三种方法
2013/03/23 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
Python安装第三方库的3种方法
2015/06/21 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
python tornado微信开发入门代码
2018/08/24 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python plotly绘制直方图实例详解
2019/07/22 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
销售文员岗位职责
2013/11/29 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
教师业务培训方案
2014/05/01 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
签字仪式主持词
2015/07/03 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
Python socket如何解析HTTP请求内容
2022/02/12 Python