【问题标题】:Asterisk agi write variables to log filesAsterisk agi 将变量写入日志文件
【发布时间】:2019-12-09 12:23:45
【问题描述】:

我正在为 Asterisk Vicidial 使用 phpagi。我有一个需要通过在执行程序时将一些变量值写入外部日志文件来跟踪的类。

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

第一:

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

秒:

print_r(variable, value)

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

【问题讨论】:

    标签: php asterisk agi


    【解决方案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;}
    

    【讨论】:

      【解决方案2】:

      你不能只 print_r 到 stdout,因为 stdout 去 AGI 输入和控制星号。

      使用标准错误或写入日志文件。当您写入日志文件时,请记住,该星号在星号用户下运行。因此,只需提供正确的权限即可。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 2012-04-06
      • 2023-03-31
      • 2012-01-16
      • 1970-01-01
      相关资源
      最近更新 更多