laravel日志自建通道解决定时任务运行后日志无权限问题

问题场景:

crontab运行php artisan脚本产生的日志文件和laravel接口产生的文件都是laravel.log,由于用户所属不同的原因,如果是crontab先运行,则laravel.log的归属用户为root;而laravel接口先运行,则laravel.log的归属用户为www-data,root大于www-data,所以crnotab先运行,则接口无权限再写日志。为解决这种日志权限问题,让crontab运行的脚本使用其他日志文件则非常有必要;

解决方案:

1,自建日志通道

'daily_cli' => [
    'driver' => 'daily',
    'path' => storage_path('logs/laravel_cli.log'),
    'level' => 'debug',
    'days' => 7,
],

 

2,代码中使用

Log::channel('daily_cli')->info('【订单脚本】处理拼团活动订单脚本开始'); 

 

结果:

这样crontab中产生的日志为laravel_cli.log,laravel接口产生的日志为laravel.log,再无权限混淆问题;

注意:

daily驱动产生的日志文件名会带日期,如果不需要用single即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值