如何重置计划任务的错误和日志输出地址?

已邀请:

zkbhj - 凯冰科技站长

赞同来自:

先看下面的代码:
function test(){
$file = '/tmp/std.log';
global $stdout, $stderr;
$handle = fopen($file, "a");
if ($handle) {
unset($handle);
@fclose(STDOUT);
@fclose(STDERR);
$stdout = fopen($file, "a");
$stderr = fopen($file, "a");
}
}

test();
print_r($_SERVER);
当这个PHP脚本运行时,信息并不会输出在屏幕上,而是输出到了指定的file文件中。
 
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
$STDIN = fopen('/dev/null', 'r');
$STDOUT = fopen('application.log', 'wb');
$STDERR = fopen('error.log', 'wb');
如果你关闭了标准输出,标准错误输出文件描述符,那么你打开的前三个文件描述符将成为新的标准输入、输出、错误的描述符。使用$STDIN, $STDOUT纯粹是障眼法而已, 必须指定为全局变量,否则文件描述符将在函数执行完毕之后被释放。
 
php -f abc.php (1)> a.log 2> &1

 
参考文档:http://stackoverflow.com/quest ... n-php
 

要回复问题请先登录注册