【问题标题】: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));
【解决方案3】:
如果您主要使用 syslog 作为调试手段,而不是使用var_dump,
为什么不直接使用 'tail' 系统日志
tail -f /var/log/syslog
您可以grep 使用任何关键字
tail -f /var/log/syslog | grep MY_KEYWORD --line-buffered