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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
php继承的一个应用
Sep 06 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
php中如何防止表单的重复提交
Aug 02 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
cakephp常见知识点汇总
Feb 24 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
php装饰者模式简单应用案例分析
Oct 23 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 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 网上商城促销设计实例代码
2012/02/17 PHP
php实现无限级分类
2014/12/24 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
pandas如何处理缺失值
2019/07/31 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
python如何实时获取tcpdump输出
2020/09/16 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
django中cookiecutter的使用教程
2020/12/03 Python
工厂保洁员岗位职责
2013/12/04 职场文书
工作过失检讨书
2014/02/23 职场文书
个人自我鉴定总结
2014/03/25 职场文书
天河观后感
2015/06/11 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL