【问题标题】:changing log_errors_max_len has no effect更改 log_errors_max_len 无效
【发布时间】:2014-09-02 11:52:14
【问题描述】:

我在 PHP 方面没有经验,我在使用 error_logprint_r 注销大型数组时遇到了问题。

我被告知 here 更改 php.ini 文件的 log_errors_max_len,然后我继续执行 <?php phpinfo(); ?> 以查看 php.ini 文件的加载位置。然后我将其更改为log_errors_max_len = 0,但输出仍然被截断。

我也在使用 Laravel。

有人知道为什么这不起作用吗? (我已经重启了 apache :)

【问题讨论】:

  • 你能定义大数组吗?
  • 我不确定它有多大,因为输出没有显示完整的数组。它至少嵌套了 4 层。在此处查看示例输出:stackoverflow.com/questions/25621252/…
  • var_dump 能给你什么?
  • 它使“管理器”类(rest api 的一部分)崩溃,我跟踪应用程序日志或 apache 错误日志没有输出。
  • 让 var_dump 保留下来,而不是在浏览器中运行它,从(我猜你使用 linux)linux 终端运行脚本。

标签: php


【解决方案1】:

这里的主要内容是log_errors_max_len 在这种情况下似乎毫无用处。 PHP手册指出:

此长度适用于记录的错误、显示的错误以及 $php_errormsg,但不要显式调用函数,例如 error_log()

到目前为止我能找到的唯一解决方案是使用:

error_log("Long error message...", 3, CUSTOM_LOG_FILE);

error_log() 的第二个参数允许您将消息重定向到自定义文件。因此,最后一个参数应该是自定义日志文件的路径。

这样我会收到完整的错误消息,而且对于某人来说可能更重要的是,非 ASCII 字符在那里清晰可读(虽然不确定,可能是我的错,但是当我使用标准日志文件记录它们时- 我得到类似\xd0\xbf) 的东西。

【讨论】:

    【解决方案2】:

    确保像这样在页面顶部设置配置。

    <?php
    ini_set("log_errors_max_len", 0);
    ?>
    

    另见this question。可能是你的问题?

    【讨论】:

      猜你喜欢
      • 2017-11-05
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2020-05-08
      • 1970-01-01
      相关资源
      最近更新 更多