laravel日志没有写入有什么原因?怎样处理?
Admin 2021-05-28 群英技术资讯 1763 次浏览
laravel中日志没有写入的问题如何解决?当我们把项目部署到Linux 服务器上,可能会出现日志没有写入的情况,一些朋友不清楚怎样解决这个问题,对此下面分享一下解决办法供大家参考。
权限问题
导致无法写入日志的问题,是由于代码更新时添加了文件是 root 用户,所以创建日志文件也是root 权限,导致其它用户的 www 权限无法写入日志文件中。
所以修改 storage/logs/ 的用户权限为 www
chown www:www storage/logs -R
注意:如果用户使用supervisord服务运行队列的话,如果队列里有日志记录,那么运行的用户也需要改成 www 用户。
还有一种解决方式,就是修改日志的源码。
laravel在web模式下产生的日志文件(storage/logs)由www-data用户创建,而在命令行(php artisan)模式下是由当前登录系统用户创建。
这两个用户不在同一个组下,就导致后操作的功能无法对日志文件进行写操作。解决这个问题需要修改Laravel在使用Monolog框架时的源代码。
需要修改的文件在 vendor/laravel/framework/src/Illuminate/Log/Writer.php 第229行。
$handler = new RotatingFileHandler($path, $days, $this->parseLevel($level))
改为
$handler = new RotatingFileHandler($path, $days, $this->parseLevel($level),true,0777)
该代码在useDailyFiles函数中,因为config/app.php中对日志框架的配置是
'log' => 'daily',
所以使用的是RotatingFileHandler,构造函数中第五个参数是指定创建文件的权限。
用户问题
用户问题,也算是权限问题。我用这个方式解决的问题。
首先 crontab -l 查看定时任务,laravel 的定时任务定义在这里。
crontab -e 修改定时任务。一切依旧。定时任务也执行了。第二天,开始出现日志不可写的问题。
解决步骤1:修改 crontab -u www -e 定时任务配置给 www 用户,去掉root 的定时任务。第二天不再出现日志不可写问题。结果定时任务不再执行。没遇到过这样的情况,于是同时给www 用户和 root 用户 都配置了 定时任务。结果还是日志不可写。
解决步骤2:经过一番挣扎的搜寻 ,打开了最后一次的日志。* 号 是代表可能会有很多个 cron 开头的日志,打开最后一个即可。
vi /var/logs/cron*
如图:

看到定时任务的错误日志,进入home 目录,建立www文件夹。赋予权限。完成问题的解决。
以上就是关于解决laravel日志没有写入的方法介绍,大家可以参考上述解决办法,希望本文能帮助到大家。想要了解更多laravel日志的操作技巧,大家可以继续关注其他文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
除了要学习PHP的基本知识,还要了解一些代码优化上的技巧,从而帮助我们写出更加优秀的程序。我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少。
在thinkphp中,execute()方法可以在参数中直接输入SQL语句,该方法用于执行insert或update等SQL语句,返回的结果就是SQL语句影响的记录数,语法为“$model ->execute(SQL语句)”。
这篇文章通过代码讲解了PHP中die()和sleep()函数的具体用法,文中给大家介绍的通俗易懂,零基础也能看得懂,对大家的学习或工作具有一定的参考价值
swoole的UDP服务器与TCP服务器不同,UDP没有连接的概念。Http服务器只需要关注请求响应即可,所以只需要监听一个onRequest事件。WebSocket服务器是建立在Http服务器之上的长连接服务器。
php7开启错误提示的方法:1、修改php.ini文件并开启错误提醒;2、修改httpd.conf文件,在末行添加设置为“php_flag display_errors on”;3、重启Apache服务以及php服务即可。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008