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

时间:2014-05-15 14:34:50

标签: php phpunit echo phpstorm error-log

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

我可以使用ini_set('display_errors', 'On')error_reporting(E_ALL)看到错误显示。但是,使用error_log()输出的任何内容都不会显示(但它会在错误日志中显示)。

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

2 个答案:

答案 0 :(得分:0)

足够简单:包装函数。

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
}

答案 1 :(得分:0)

我发现使用我没有写入权限的文件的ini php值调用error_log; php会将error_log()输出发送到stdout然后。

$ 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文件