我需要调试一个Application,但是ECHO $变量无法正常工作。
如何将变量的值发送到日志文件?
给我一些线索。
最诚挚的问候,
答案 0 :(得分:5)
trigger_error与error_reporting结合使用,可以轻松地在开发服务器上记录您想要的内容,而无需担心生产服务器上的负载。
它添加的信息多于error_log:
trigger_error('foo');
结果
[Fri Apr 08 14:28:08 2011] [error] [client 192.168.0.13] PHP Notice: foo in /data/sites/kai/public_html/foo.php on line 3
而error_log('foo');
导致
[Fri Apr 08 14:28:08 2011] [error] [client 192.168.0.13] foo
答案 1 :(得分:4)
file_put_contents('/path_to_file/file.txt', print_r($variable, true));
OR
file_put_contents('/path_to_file/file.txt', var_export($variable, true));
答案 2 :(得分:1)
error_log('some variable');
但是变量的值在日志文件中是相同的。你必须在它上面有一些错误。
答案 3 :(得分:1)
就个人而言,我认为这种做法是错误的。您将使用echo语句或函数来混淆代码以写入文件。由于必须添加/删除这些语句,因此具有巨大的可维护性成本。
我建议您学习如何使用xdebug
进入代码并进行调试。这是我通常建议人们尝试查看某个变量的值在执行期间如何变化的唯一解决方案。
话虽如此,如果您仍然喜欢写入文件方法,那么只需执行以下操作而不是执行echo语句:
$file = "log.txt";
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, $variableName);
fclose($fh);
答案 4 :(得分:1)
我和@Ali在这一个。但是你总是可以尝试FirePHP,它允许你将日志信息写入他们的库,然后就像你通常使用FireBug一样。这是一个小教程 - http://www.developertutorials.com/tutorials/php/debugging-php-with-firebug-and-firephp-365/。