ホームページ  >  記事  >  バックエンド開発  >  Laravelフレームワークでログが書き込めない問題の解決策を共有

Laravelフレームワークでログが書き込めない問題の解決策を共有

黄舟
黄舟オリジナル
2017-06-18 13:46:281650ブラウズ

この記事では、Laravel でログが書き込めない問題の解決策を主に紹介しており、必要な方は参考にしてください。 。

はじめに

アカウントにログインすると 500 エラーが報告され、エラーメッセージは返されませんでした。仕方なく元の方法で一行ずつ印刷しています。 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

ログが書き込めない問題は、コード更新時に追加されたファイルがrootユーザーなので、ログファイルの作成にもroot権限があり、他のユーザーの www 権限をログ ファイルに書き込むことはできません。

そのため、storage/logs/ のユーザー権限を www

View [.] not found.

注:

ユーザーが
queue

で、キューにログ レコードがある場合は、実行ユーザーも www ユーザーに変更する必要があります。

問題 2


同じ問題は、ログを記録できないことです。これは、phpArtisan queue:work --sleep= を使用したローカル環境です。 3 --tries= 3 実行します。 ジョブにも同じログが書き込まれており、権限も正しいのですが、ログは記録できず、タスクは正常に実行されます。

最後に、この問題を解決するためにキューを再起動することを考えました。原因はわかりません。知っている学生がいたら教えてください。 🎜🎜キューの再起動コマンド🎜🎜🎜🎜
php artisan optimize --force
php artisan config:cache
php artisan route:cache
🎜ログに関係のないその他の問題🎜🎜🎜🎜質問 1🎜🎜🎜🎜最近 ZizacoEntrust 権限パッケージを使用しました...🎜🎜ロールを追加したとき...エラー...🎜 🎜🎜🎜rrreee🎜このパッケージにはlaravelのキャッシュを使用する場所があるはずです🎜🎜 .envのCACHE_DRIVERCACHE_DRIVERに変更します。 =array🎜🎜🎜問題 2🎜🎜🎜🎜このエラーはページに表示されます🎜🎜🎜🎜rrreee🎜解決策、最適化、構成キャッシュのクリア、🎜ルーティング🎜キャッシュ🎜🎜🎜🎜rrreee🎜🎜🎜 🎜🎜 🎜

以上がLaravelフレームワークでログが書き込めない問題の解決策を共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。