这里是文章模块栏目内容页
PHP用fwrite和fopen实现日志记录函数 方便跟踪代码调试

PHP实现一个日志记录函数 方便跟踪代码调试


在调试PHP开发的web站点时,可以在浏览器直接一刷就打印出在代码中留下的print_r数据;

然而,当调试比较大的项目时,很多框架采用了事件驱动来耦合业务逻辑,在主程序进程中

通过emit触发事件,在需要响应事件的地方实现一些业务逻辑。这样的代码,跟踪调试,必须得

借助日志记录来进行。


下面是一个简单的记录 日志功能函数,

function Debuglog($info){
    $logfile = 'D:\\www\siteapp/data/debug.log' ; //这个文件保存路径根据自己的站点文件来写
    $fh = fopen($logfile,'ab'); //打开,追加模式
    fwrite($fh,date("Y-m-d H:i:s")."#:".$info."\r\n");
    fclose($fh);
  
}

在需要调试记录日志的地方加入Debuglog函数:

        $path = $request->getPath();

        if (!$this->server->emit('beforeUnbind', [$path])) return false;
        
        Debuglog($path); //调试日志记录留下 $path 参数的值。
        $this->server->tree->delete($path);
        $this->server->emit('afterUnbind', [$path]);


记录下来的日志内容格式样式:

2020-12-19 19:55:45#:admin
2020-12-19 19:55:45#:
2020-12-19 19:55:45#:uploads
2020-12-19 19:55:45#:uploads
2020-12-19 19:55:45#:admin
2020-12-19 19:55:45#:uploads/admin
2020-12-19 19:55:45#:web-file-upload-51e80269e937406575ce0ea7c612fd2b-1609905362454
2020-12-19 19:55:45#:uploads/admin
2020-12-19 19:55:45#:web-file-upload-51e80269e937406575ce0ea7c612fd2b-1609905362454