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 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
php xfocus防注入资料
Apr 27 PHP
php 正确解码javascript中通过escape编码后的字符
Jan 28 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 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的历史和优缺点
2006/10/09 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
python list语法学习(带例子)
2013/11/01 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python新手学习raise用法
2020/06/03 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
京东国际站:JOYBUY
2017/11/23 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
开办化妆品公司创业计划书
2013/12/26 职场文书
军训学生自我鉴定
2014/02/12 职场文书
商业项目策划方案
2014/06/05 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
解决Redis启动警告问题
2022/02/24 Redis
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android