php实现的debug log日志操作类实例_php技巧

本文实例讲述了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字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 日志
, debug
, log
操作类
debug日志、httpclient debug日志、日志级别 info debug、tomcat debug日志、spring debug日志关闭,以便于您获取更多的相关知识。

时间: 2024-10-21 21:58:53

php实现的debug log日志操作类实例_php技巧的相关文章

php针对cookie操作的队列操作类实例_php技巧

本文实例讲述了php针对cookie操作的队列操作类.分享给大家供大家参考.具体分析如下: 这里包括了从简单的cookie操作(增加,删除,修改)到我们的cookie队列操作类的操作,对此感兴趣的朋友可以参考一下. 一.PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制. PHP 在http 协议的头信息里发送cookie,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对  header() 函数的限制类似. 设置cooki

php面象对象数据库操作类实例_php技巧

本文实例讲述了php面象对象数据库操作类.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: //此处构造一个数据库操作类,封装所有数据库操作 //可以扩展便于后台管理程序的使用 Class MySQLDB  {     var $host;     var $user;     var $passwd;     var $database;    var $conn;       //利用构造函数实现变量初始化     //同时连接数据库操作    function MySQLD

PHP数组操作类实例_php技巧

本文实例讲述了PHP数组操作类.分享给大家供大家参考.具体如下: class ArrayHelper{ /** * 从数组中删除空白的元素(包括只有空白字符的元素) * * 用法: * @code php * $arr = array('', 'test', ' '); * ArrayHelper::removeEmpty($arr); * * dump($arr); * // 输出结果中将只有 'test' * @endcode * * @param array $arr 要处理的数组 * @

php实现的mongodb操作类实例_php技巧

本文实例讲述了php实现的mongodb操作类.分享给大家供大家参考.具体如下: <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ class mongo_db { private $config; private $connection; private $db; private $connection_string; private $h

php操作MongoDB类实例_php技巧

本文实例讲述了php操作MongoDB类的方法.分享给大家供大家参考.具体如下: 1. MyMongo.php文件: <?php /** * 仿写CI的MongoDB * @author sparkHuang 2011-11-03 * */ class MyMongo { private $mongo_config = "mongo_config.php"; private $connection; private $db; private $mongo_connect_stri

PHP中使用Memache作为进程锁的操作类分享_php技巧

<?php // 使用Memache 作为进程锁 class lock_processlock{ // key 的前缀 protected $sLockKeyPre; // 重试间隔 protected $iLockRetryInterval; //重试次数 protected $iLockRetryCount; //锁的过期时间 protected $iLockCacheTimeout; // 锁过期后的回调函数 protected $onLockTimeoutFunc; // memache

php文件操作相关类实例_php技巧

本文实例讲述了php文件操作相关类.分享给大家供大家参考.具体如下: <?php class file_dir { function check_exist($filename) //检查目录或文件是否存在 { if(file_exists($filename)) { return true; } else return false; } function create_dir($dirname,$mode=0777) // 一次只能创建一级目录 { if(is_null($dirname) |

javascript封装的sqlite操作类实例_javascript技巧

本文实例讲述了javascript封装的sqlite操作类.分享给大家供大家参考.具体如下: function sql(name,v,desc,size,tables){ this.db=null; this.name=name; this.v=v; this.desc=desc; this.size=size; this.tables=tables; this.ini(); } sql.prototype.ini=function(){ var self=this; self.db=openD

php的mssql数据库连接类实例_php技巧

本文实例讲述了php的mssql数据库连接类实例代码,分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: class DB_Sql {   var $Host     = "";   var $Database = "";   var $User     = "";   var $Password = "";   var $Link_ID  = 0;   var $Query_ID = 0;   var $Rec