Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将PHP error_log()语句回显到输出缓冲区_Php_Phpunit_Echo_Phpstorm_Error Log - Fatal编程技术网

如何将PHP error_log()语句回显到输出缓冲区

如何将PHP error_log()语句回显到输出缓冲区,php,phpunit,echo,phpstorm,error-log,Php,Phpunit,Echo,Phpstorm,Error Log,我用来开发一个PHPWeb应用程序,并使用其内置的PHPUnit测试运行程序。在IDE内的输出窗口中,它显示输出缓冲区(例如,任何已回响的内容) 我可以通过使用ini\u集('display\u errors','On')和error\u reporting(E\u ALL)看到错误显示。但是,任何使用error\u log()的输出都不会显示(但会显示在错误日志中) 有没有办法让写入错误日志的任何内容也显示在输出缓冲区中?足够简单:包装函数 function error_log_out($me

我用来开发一个PHPWeb应用程序,并使用其内置的PHPUnit测试运行程序。在IDE内的输出窗口中,它显示输出缓冲区(例如,任何已回响的内容)

我可以通过使用
ini\u集('display\u errors','On')
error\u reporting(E\u ALL)
看到错误显示。但是,任何使用
error\u log()
的输出都不会显示(但会显示在错误日志中)


有没有办法让写入错误日志的任何内容也显示在输出缓冲区中?

足够简单:包装函数

function error_log_out($message, $message_type=0, $destination=0, $extra_headers="") {
    error_log($message,$message_type,$destination,$extra_headers);
    echo $message; // optionally add some formatting
}

我发现用ini
error\u log
值调用
php
我没有写入权限的文件;php会将
error\u log()
输出发送到标准输出

$ touch ~/my_php_error.log
$ php -d error_log=~/my_php_error.log -r 'error_log("Hello World");'
# Writes to ~/my_php_error.log

$ chmod -w ~/my_php_error.log
$ php -d error_log=~/my_php_error.log -r 'error_log("Hello World");'
Hello World
# Writes to stdout

-r“…cmd”
也可以代替php文件运行

我不想引入新函数。我意识到我们的日志记录是次优的,因为我们正在利用错误日志而不是库;现在努力解决这个问题。啊,好的。理论上,可以通过将
error\u log
函数重命名为其他函数,然后按照我的答案中的方式包装该函数,但使用原始名称,从而“钩住”该函数。但这是一个带有调试扩展的主要hax,而且完全是错误的!是的,我不想这么做。注意:我会以某种方式跟踪错误日志文件的起始位置,然后输出任何新写的内容。