我正在将phpagi用于星号Vicidial。在执行程序时,我需要通过将一些变量值写入外部日志文件来跟踪其中一种类。
我尝试了以下两种方法,但是都停止了应用程序的执行。
第一:
file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int
秒:
print_r(variable, value)
任何有关如何在日志文件中写入变量值的帮助将不胜感激。
答案 0 :(得分:1)
使用Vicidial AGI脚本中已经可见且可用的agi日志记录功能。您可以在系统上的任何AGI脚本中找到特定于Vicidial脚本版本的版本。
该函数将如下所示:
sub agi_output
{
if ($AGILOG >=2)
{
### open the log file for writing ###
open(Lout, ">>$AGILOGfile")
|| die "Can't open $AGILOGfile: $!\n";
print Lout "$now_date|$script|$agi_string\n";
close(Lout);
}
### send to STDERR writing ###
if ( ($AGILOG == '1') || ($AGILOG == '3') )
{print STDERR "$now_date|$script|$agi_string\n";}
$agi_string='';
}
执行将类似于:
if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;}
答案 1 :(得分:0)
您不能只将print_r转到stdout,因为stdout转到AGI输入并控制星号。
使用stderr或写入日志文件。写入日志文件时,请记住,该星号在星号用户下运行。因此,只需提供正确的权限即可。