我正在使用Laravel 5.4
。在我的config/app.php
文件中,日志存储选项设置为daily
。因此,框架将创建一个每日日志文件,例如'laravel-2019-03-11.log'。另外,旧的日志文件将根据默认值或log_max_files
文件中config/app.php
的值自动删除。
我的问题是将取消链接代码写在哪里(我试图在供应商文件夹中找到它,但没有运气)?另外,有什么方法可以覆盖此默认逻辑。我想要的是,而不是删除这些旧的日志文件,而是将其移动到log_backup
之类的另一个文件夹中。
答案 0 :(得分:1)
旧文件被Monolog\Handler\RotatingFileHandler::rotate
删除。
我知道您使用的是5.4,但是如果可以选择升级到5.6(或更高版本),则可以利用新的日志记录功能。您要做的就是向backup
添加一个新的config/logging.php
日志记录通道并将其包含在stack
中。到目前为止,这将是最干净的解决方案。
例如,要保留所有critical
或更高版本的日志的备份,
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily', 'backup'],
'ignore_exceptions' => false,
],
'backup' => [
'driver' => 'single',
'path' => storage_path('logs/backup.log'),
'level' => 'critical',
],
答案 1 :(得分:0)
您只需创建一个单独的命令即可使用cron作业定期移动日志文件。
这里是一个例子。
将文件移动到另一个文件夹。
public function moveLogs(){
File::move( app()->storagePath().'your file name', $your/new/path )
}
答案 2 :(得分:0)
在laravel 5.4中,您的日志文件已自动删除,因为可能是您的日志目录中每天已有5个日志文件;而在laravel 5.4中,log_max_size的默认值为5,这就是为什么您的日志已被自动删除的原因。