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代码简化
Feb 08 PHP
php 生成随机验证码图片代码
Feb 08 PHP
10个简化PHP开发的工具
Dec 25 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php中将一个对象保存到Session中的方法
Mar 13 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php-app开发接口加密详解
Apr 18 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
php跨站攻击实例分析
2014/10/28 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
Python实现的科学计算器功能示例
2017/08/04 Python
如何教少儿学习Python编程
2020/07/10 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
美国钻石商店:Zales
2016/11/20 全球购物
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
小饰品店的创业计划书范文
2013/12/28 职场文书
40岁生日感言
2014/02/15 职场文书
无私奉献演讲稿
2014/09/04 职场文书
践行三严三实心得体会
2014/10/13 职场文书
意向协议书
2015/01/27 职场文书
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle