【问题标题】:PHP error_log() isn't workingPHP error_log() 不工作
【发布时间】:2015-09-21 17:28:47
【问题描述】:

我正在开发一个不使用任何框架的基本应用程序,也没有debug = 1。我试图弄清楚如何显示 php 的 var_dumps 和 error_logs,但我不确定它们应该在哪里打印。

我在 localhost 使用 PHP 的内置服务器。 这是我的html:

<?php

session_start();

?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

    <pre>

    </pre>  

</body>
</html>

我以为session_start() 会在 html 之前显示 php var_dumps,但什么都没有。

我还尝试安装 ChromePHP,我可以让它打印 HTML 中的内容,但当我将语句移到 PHP 代码中时却不行。

我也有这个类记录一些错误:

class Utils {

    public static function log($message)
    {
        @error_log($message, 0);
    }

}

我尝试将其更改为error_log($message, 3, './mylog.txt');还是什么都没有。

这可能是有史以来写的最基本的问题,但我不知道如何调试纯 PHP。

【问题讨论】:

  • 我会删除error_log前面的@。默认情况下,PHP 将在命令行上写入 stderr。如果文件不可写,它也会回退到 stderr。确保文件是可写的 "chmod +w ./mylog.txt"
  • var_dump 与会话或错误报告/日志记录完全无关。和使用 echo 没什么区别
  • laura:这意味着代码没有被执行,这就是为什么没有行号的原因。看起来您的问题不在于日志记录,而可能是您正在运行“php -S”的地方?你运行php -S的目录下是否有index.php?
  • 我完成了以上所有操作,但它仍然没有记录任何内容......我想我要问的是我如何var_dump 使用普通 PHP 进行任何操作,更具体地说,它应该显示在哪里起来了吗?

标签: php debugging error-handling


【解决方案1】:

除了 session_start() 之外,您的代码中没有 PHP-Command。没有回声,没有 var_dump... 并且 session_start 写入正确。在这种情况下,PHP 所做的是启动会话并将 Html 代码的其余部分返回给浏览器。

所以这里没有真正的问题。

如果你想看什么,

// you should try
echo "Test, PHP is working";

如果您在此处没有看到任何内容,则说明您的网络服务器无法正常工作。查看您应该使用哪个端口并查看服务是否正在运行。

如果您有更多要调试的代码,可以使用一些命令来定义输出。

// Look up those:
ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
error_reporting(E_ALL);

这有帮助吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2013-03-28
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多