PHP调试日志方法

1、需求

  当我们的项目已经上线,但是出现了bug,这时候调试变得极为重要。但是有时候需要打印变量才能找到bug. 这时候就需要我们用日志来记录变量。我已经在网上也找了很多的PHP代码,但是总是觉得不太理想。希望下面的能解决大家的问题。

2、 代码

/**
 * 写日志,用于测试,可以开启关闭
 * @param data mixed
 */
function _logs($data, $file = ‘logs_‘){
    $year   = date("Y");
    $month  = date("m");
    $dir    = ‘./test_logs/‘ . $year . ‘/‘ . $month . ‘/‘;
    if(!is_dir($dir)) {
        mkdir($dir,0755,true);
    }
    $file = $dir . $file . date(‘Y-m-d‘).‘.txt‘;
    @file_put_contents($file, ‘----------------‘ . date(‘H:i:s‘) . ‘--------------------‘.PHP_EOL.var_export($data, true).PHP_EOL, FILE_APPEND);
}

注释:

file_put_contents这个方法不用了,PHP里面很常用。
PHP_EOL 是换行符,因为每个系统里面的换行符都不一样。unix系列用 \nwindows系列用 \r\n mac用 \r
var_export 这个方法用的比较少但是这里很有用。跟var_dump方法一样。只是输出的格式是用php代码的格式。 输出或返回一个变量的字符串表示。可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
时间: 2024-08-07 08:39:18

PHP调试日志方法的相关文章

【写一个自己的js库】 2.实现自己的调试日志

还是本着学习的目的,实现一个自己的调试日志,界面很简单,就是将调试信息显示在页面的正中央,用一个ul包裹,每条信息就是一个li. 1.新建一个myLogger.js文件,将需要的方法声明一下.其中var声明的是私有成员,可见范围只在构造函数中,每个实例都会保存一套他们的副本.this声明的是特权方法,new的时候会把它绑定到实例上,实例可以直接调用它.在prototype上声明的就是公有方法了,每个实例都可以访问它.最后将一个实例赋值给Lily这个库,Lily就有自己的日志插件了. functi

Salesforce中如何删除调试日志

大家在新建一个用户跟踪标记的时候可能会遇到以下报错:调试日志已经超过了上限,在编辑跟踪标志前,删除一些调试日志.但是在点击"全部删除"按钮删除所有可见的日志后,还是报同样的错误,这时候,我们打开开发者控制台,会发现弹出如下提示框. 那么如何删除系统中的调试日志呢?只需要在控制台的Query Editor中输入如下查询语句:Select Id from apexlog,然后点击下方的Execute按钮,这时候会查询出系统中存在的所有调试日志,然后选中所有的记录,再点击Delete Row

JMeter-显示调试日志log

JMeter-调试日志记录 参考文档:https://jmeter.apache.org/usermanual/hints_and_tips.html 大多数测试元素包括调试日志记录. 如果从GUI运行测试计划,请选择测试元素,然后使用“Help”菜单 Enable  logging or Disable logging记录. 帮助菜单还具有显示GUI和测试元素类名称的选项. 您可以使用它们来确定更改日志记录级别的正确属性设置. 有时,查看日志消息来调试动态脚本语言(如JMeter中使用的Bea

Xcode5.1离线下载安装及使用iOS5模拟器进行开发调试的方法

Xcode5.1默认不支持iOS5版本的模拟器开发调试,在OS X Mavericks(10.9.x)下默认只能支持iOS6.1及以上版本的模拟器,在OS X Mountain Lion(10.8.x)下默认只能支持iOS6.0及以上版本的模拟器进行开发和调试,在此条件之下的版本只能使用硬件设备进行开发调试.虽然现在低版本的iOS设备越来越少了,但是有时客户的需求可能会要求我们一定要兼容iOS5(或更低版本)及以上版本,如果我们手头找不到低版本硬件设备用于调试或者完全使用硬件设备而没有对应的模拟

oracle从备份集中恢复归档日志方法

oracle从备份集中抓出归档日志方法 在大连医院遇到这个问题,数据库为归档状态,但归档完毕后rman通过crontab自动备走归档日志并删除存在系统上的归档日志文件.在RealSync程序停止一段时间后,需要应用归档日志来解决日志丢失问题. 问题是: 数据库中的控制文件中关于备份的元数据已经丢失,但备份集存在.这时候我们开始调用oracle的一个内部非公开的函数包:dbms_backup_restore 来从备份集中抽取归档日志到指定的系统目录.以满足我们的需求. 语句如下: declare

Android开发调试日志工具类[支持保存到SD卡]

直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.net.UnknownHostException; import java.text.SimpleDateFormat; impor

WCF调试日志

WCF调试,打不了断点or远程调试时,在配置文件的<configuration>结点下面加一段,就可以在对应位置查看服务器调试日志了,远程调试完毕发送亦可! <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true"> <list

【转】Android开启网络调试的方法

方法是偶然看到的:Android 终端adbd服务需要开启5555号端口来建立于adb的连接,如果未开启5555端口,则不能通过网络调试 查看是否可以网络调试: # netstat Android adb 不能通过网络调试的解决方法 有5555端口开放,说明可以进行连接:> adb connect 192.168.0.202 如果netstat显示没有5555端口开放,则需要设置adbd参数,并重新启动adbd服务:# stop adbd # setprop service.adb.tcp.po

用CMAKE编译配置的项目进行调试的方法

在Linux 下用CMAKE编译的项目进行Debug 需进行设置: 1.在未设置之前 进行调试可能会出现错误报告:No source available for ...等一系列错误,这些错误可能就是你想进行程序Debug,但又未进行设置导致的. 首先检查用CMAKE编译时:where is the source code : ...和where to build the binaries ...的目录是否是英文路径,我刚开始就是路径中包含中文,导致出现No source available ..