Php 如何使用Laravel调度程序命令将输出重定向到STDOUT?
我的调度程序应用程序运行在Docker容器中 Laravel调度程序由supervisor管理并执行到容器中(我通过以下方式管理输出重定向): 调整My Kernel.php代码以将输出附加到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 如果我
$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);