【问题标题】:Php: How to do a var_dump() in the syslog()?Php:如何在 syslog() 中执行 var_dump()?
【发布时间】:2014-04-15 03:06:55
【问题描述】:

我正在调试 API 的一些 php 代码,为此我使用 syslog() 来查看我的调试消息。问题是我想获得一些有用的日志。例如,某事是空的还是假的?通常我为此使用 var_dump(),但由于我在 API 中使用 var_dump,f*%$s 提高了 API 输出。

我尝试过syslog(LOG_ERR, var_dump($myVar));,但无济于事。

有人知道我如何在系统日志中“漂亮地打印”变量/数组吗?

【问题讨论】:

    标签: php debugging logging syslog


    【解决方案1】:

    var_export()print_r() 可能会返回内容而不是回显它

    【讨论】:

      【解决方案2】:

      var_dump() 直接输出。没有规定它可以返回其格式化输出,因此您需要使用输出缓冲:

      ob_start();
      var_dump($something);
      syslog(LOG_ERROR, ob_get_clean());
      

      请注意,print_r() 确实有一个可选的第二个参数来强制它返回而不是输出:

      syslog(LOG_ERROR, print_r($something, TRUE));
      

      【讨论】:

      • 它是 LOG_ERR 而不是 LOG_ERROR
      【解决方案3】:

      如果您主要使用 syslog 作为调试手段,而不是使用var_dump, 为什么不直接使用 'tail' 系统日志

      tail -f /var/log/syslog

      您可以grep 使用任何关键字

      tail -f /var/log/syslog | grep MY_KEYWORD --line-buffered

      【讨论】:

        猜你喜欢
        • 2011-01-26
        • 1970-01-01
        • 2017-04-10
        • 2015-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-25
        相关资源
        最近更新 更多