将调试内容输出到文件中的最简单方法

时间:2010-09-25 16:34:29

标签: php logging

我有一个应用各种PHP脚本的应用程序。我想知道执行从一个点移动到另一个点需要多长时间(有很多这样的点)。

我正在寻找一个简单的php行,我可以在不修改的情况下插入我的代码中的不同位置并获取输出文件(不生成html),其中显示如下内容:

FILENAME      FUNCTION        LINENUMBER      TIMESTAMP

我开始使用它了:

file_put_contents('/home/default/public_html/debug.log',  __FILE__ . "\t" .
 __FUNCTION__ . "\t" . __LINE__ . "\t" . microtime(true)."\n", FILE_APPEND);

这很好,但有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

要获得一种简单的方法,您可以使用带有trigger_error()E_NOTICE级别的全局PHP错误系统,或error_log()函数来登录单独的文件。

我是你的情况我会推荐第二种解决方案。


使用trigger_error()

<?php
    trigger_error("Call will start now", E_NOTICE);
    startTheHugeCall();
    trigger_error("Call is finished", E_NOTICE);
?>

使用error_log()

<?php
    error_log("Call will start now", 3, "/var/tmp/debugfile.log");
    startTheHugeCall();
    error_log("Call is finished", 3, "/var/tmp/debugfile.log");
?>

资源:

答案 1 :(得分:1)

您可以使用XDebug extension生成原始分析数据。它默认会在/ tmp目录中生成文件,您可以使用命令行工具或各种GUI来处理。