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的宝库目录--PEAR
Oct 09 PHP
php扩展ZF――Validate扩展
Jan 10 PHP
php 无限分类的树类代码
Dec 03 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
php生成随机数的三种方法
Sep 10 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
pandas多级分组实现排序的方法
2018/04/20 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
python编写计算器功能
2019/10/25 Python
python入门之基础语法学习笔记
2020/02/08 Python
python的json包位置及用法总结
2020/06/21 Python
numba提升python运行速度的实例方法
2021/01/25 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
最新计算机专业自荐信
2013/10/16 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
销售实习自我鉴定
2013/12/07 职场文书
优秀士兵先进事迹
2014/02/06 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
婚礼父母答谢词
2015/01/04 职场文书
责任书格式
2015/01/29 职场文书
搞笑老公保证书
2015/02/26 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android