星号agi将变量写入日志文件

时间:2019-12-09 12:23:45

标签: php asterisk agi

我正在将phpagi用于星号Vicidial。在执行程序时,我需要通过将一些变量值写入外部日志文件来跟踪其中一种类。

我尝试了以下两种方法,但是都停止了应用程序的执行。

第一:

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int

秒:

print_r(variable, value)

任何有关如何在日志文件中写入变量值的帮助将不胜感激。

2 个答案:

答案 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或写入日志文件。写入日志文件时,请记住,该星号在星号用户下运行。因此,只需提供正确的权限即可。