Laravel 8.0: 使用 storage_path() 找不到 laravel.log 文件
Laravel 8.0: laravel.log file not found using storage_path()
我正在尝试编写一个 Laravel 8.0 任务,每周重命名默认日志文件并生成另一个空文件。我正在使用 Debian 10 虚拟机作为测试环境。
这是我的 handle()
代码:
$now = Carbon::now();
$baseLog = "/laravel.log";
$oldLog = storage_path("logs".$baseLog);
$renamedLog = storage_path("logs"."/log_".$now->day."_"
.$now->month."_".$now->year.".log");
Storage::move($oldLog, $renamedLog);
Storage::delete($oldLog);
Storage::put(storage_path("logs".$baseLog), "");
问题是 Laravel
说...
File not found at path: var/www/html/storage/logs/laravel.log
添加检查文件是否存在而不使用删除 - 因为您移动 文件:
$baseLog = "/laravel.log";
$oldLog = storage_path("logs".$baseLog);
if(Storage::exists($oldLog)){
$now = Carbon::now();
$renamedLog = storage_path("logs"."/log_".$now->day."_".$now->month."_".$now->year.".log");
Storage::move($oldLog, $renamedLog);
Storage::put(storage_path("logs".$baseLog), "");
}
或者,如果这不是为了学习,请使用包进行日志轮换,例如this
正如您正确指出的那样,我在移动的文件上调用了删除(我的错),但错误发生在之前,同时试图找到 laravel.log。
添加存在检查后,我注意到返回的存储路径有一个“/app”,所以我刚刚在 config/filesystems
中创建了另一个磁盘实例
'log' => [
'driver' => 'local',
'root' => storage_path('logs'),
],
然后我终于可以这样解决我的问题了:
$baseLog = "/laravel.log";
if(Storage::disk('log')->exists($baseLog)){
$now = Carbon::now();
$renamedLog ="/log_".$now->day."_".$now->month."_".$now->year.".log";
Storage::disk('log')->move($baseLog, $renamedLog);
Storage::disk('log')->put($baseLog, "");
}
谢谢
我正在尝试编写一个 Laravel 8.0 任务,每周重命名默认日志文件并生成另一个空文件。我正在使用 Debian 10 虚拟机作为测试环境。
这是我的 handle()
代码:
$now = Carbon::now();
$baseLog = "/laravel.log";
$oldLog = storage_path("logs".$baseLog);
$renamedLog = storage_path("logs"."/log_".$now->day."_"
.$now->month."_".$now->year.".log");
Storage::move($oldLog, $renamedLog);
Storage::delete($oldLog);
Storage::put(storage_path("logs".$baseLog), "");
问题是 Laravel 说...
File not found at path: var/www/html/storage/logs/laravel.log
添加检查文件是否存在而不使用删除 - 因为您移动 文件:
$baseLog = "/laravel.log";
$oldLog = storage_path("logs".$baseLog);
if(Storage::exists($oldLog)){
$now = Carbon::now();
$renamedLog = storage_path("logs"."/log_".$now->day."_".$now->month."_".$now->year.".log");
Storage::move($oldLog, $renamedLog);
Storage::put(storage_path("logs".$baseLog), "");
}
或者,如果这不是为了学习,请使用包进行日志轮换,例如this
正如您正确指出的那样,我在移动的文件上调用了删除(我的错),但错误发生在之前,同时试图找到 laravel.log。
添加存在检查后,我注意到返回的存储路径有一个“/app”,所以我刚刚在 config/filesystems
'log' => [
'driver' => 'local',
'root' => storage_path('logs'),
],
然后我终于可以这样解决我的问题了:
$baseLog = "/laravel.log";
if(Storage::disk('log')->exists($baseLog)){
$now = Carbon::now();
$renamedLog ="/log_".$now->day."_".$now->month."_".$now->year.".log";
Storage::disk('log')->move($baseLog, $renamedLog);
Storage::disk('log')->put($baseLog, "");
}
谢谢