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 相关文章推荐
10条PHP编程习惯助你找工作
Sep 29 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
php调用shell的方法
Nov 05 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
PHP 并发场景的几种解决方案
Jun 14 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
优化javascript的执行速度
2010/01/23 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
Python中shutil模块的学习笔记教程
2017/04/04 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python3的输入方式及多组输入方法
2018/10/17 Python
在python中bool函数的取值方法
2018/11/01 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
建筑自我鉴定
2013/10/19 职场文书
专科应届生求职信
2013/11/24 职场文书
外贸采购员求职的自我评价
2013/11/26 职场文书
合作经营协议书范本
2014/09/16 职场文书
员工教育培训协议书
2014/09/27 职场文书
三方合作意向书范本
2015/05/09 职场文书
经营场所使用证明
2015/06/19 职场文书
基于redis+lua进行限流的方法
2022/07/23 Redis