Php 如何使用Laravel调度程序命令将输出重定向到STDOUT?

Php 如何使用Laravel调度程序命令将输出重定向到STDOUT?,php,laravel,stdout,scheduler,Php,Laravel,Stdout,Scheduler,我的调度程序应用程序运行在Docker容器中 Laravel调度程序由supervisor管理并执行到容器中(我通过以下方式管理输出重定向): 调整My Kernel.php代码以将输出附加到stdout_日志文件: $fileCronLog = '/dev/stdout'; $schedule->command('test')->everyMinute()->appendOutputTo($fileCronLog); test命令只是将字符串转储到STDOUT 如果我

我的调度程序应用程序运行在Docker容器中

Laravel调度程序由supervisor管理并执行到容器中(我通过以下方式管理输出重定向):

调整My Kernel.php代码以将输出附加到stdout_日志文件:

 $fileCronLog = '/dev/stdout'; 
 $schedule->command('test')->everyMinute()->appendOutputTo($fileCronLog);
test命令只是将字符串转储到STDOUT

如果我将$fileCronLog设置为本地存储文件 将我的命令输出正确写入文件$filepath

但是 $fileCronLog='/dev/stdout'


我看不见我的日志。我还试图进入容器查看此文件,但它总是空的。

我可能找到了解决我自己问题的方法。 这就是资源:

通过在Dockerfile中添加主管将运行的此行:

 RUN ln -sf /proc/1/fd/1 /var/log/laravel-scheduler.log
然后在Laravel app/console/Kernel.php中

$fileCronLog = '/var/log/laravel-scheduler.log'; 
$schedule->command('test')->everyMinute()->appendOutputTo($fileCronLog); 
这就产生了不同:

/var/log/laravel-scheduler.log不应是指向/proc/self/fd/1的符号链接

但是要发送到/proc/1/fd/1


“细微但非常显著的差异。”

您不能直接附加到
/proc/1/fd/1
并放弃符号链接吗?Docker php fpm配置为
/php fpm.d/Docker.conf:access.log=/proc/self/fd/2
非常奇怪,以至于
self
无法工作。。。
$fileCronLog = '/var/log/laravel-scheduler.log'; 
$schedule->command('test')->everyMinute()->appendOutputTo($fileCronLog);