この記事は、Laravel でログが書き込めない問題の解決策を主に紹介しており、必要な方はぜひ参考にしてください。お役に立てれば幸いです。
はじめに
アカウントへのログイン時に500エラーが報告され、エラーメッセージは返されませんでした。仕方なく元の方法を使用し、現在は1行ずつ印刷しています。 Log::info()
に達した後、正常に表示できない場合は、問題が見つかりました。 Log::info()
后面就无法正常显示了,那么问题就找到了。
导致无法写入日志的问题,是由于代码更新时添加了文件是 root 用户,所以创建日志文件也是 root 权限,导致其它用户的 www 权限无法写入日志文件中。
所以修改 storage/logs/ 的用户权限为 www
chown www:www storage/logs -R
注意:如果用户使用supervisord服务运行队列的话,如果队列里有日志记录,那么运行的用户也需要改成 www 用户。
问题2
同样是日志无法记录问题,这里是本地环境使用 php artisan queue:work --sleep=3 --tries=3
运行。
同样在 job 中写日志,权限也是正确,就是无法记录日志,任务也正常执行。
最后想到重启队列解决此问题,不知道是什么原因导致。如果有知道的同学请告知一声。
重启队列命令
php artisan queue:restart
其它与日志无关的问题
问题1
最近在使用 ZizacoEntrust 这个权限包…
再添加角色的时候… 报了一个错..
BadMethodCallException in Repository.php line 391: This cache store does not support tagging.
应该是这个包里 有个地方用了 laravel 的cache,默认的cache是file
把.env 里的 CACHE_DRIVER
改成 CACHE_DRIVER=array
そのため、storage/logs/ のユーザー権限を www
View [.] not found.
問題 2
最後に、この問題を解決するためにキューを再起動することを考えました。原因はわかりません。知っている学生がいたら教えてください。