如何禁用Laravel 5日志文件


How to disable Laravel 5 log file?

我的Laravel 5网站在具有1GB磁盘空间的共享主机上工作。但现在我有大约100MB的日志文件。如何禁用Laravel5中的日志文件?

为了完全禁用日志记录,您需要覆盖Laravel设置的默认日志处理程序。使用可以轻松做到这一点

$nullLogger = new NullHandler();
'Log::getMonolog()->setHandlers(array($nullLogger));

在处理请求之前,您需要尽早调用,例如,您可以在bootstrap/app.php:中这样做

$app->configureMonologUsing(function($monolog) {
  $nullLogger = new 'Monolog'Handler'NullHandler();
  $monolog->setHandlers(array($nullLogger));
});
return $app;

我知道这有点过时,但:

在config/logging.php中:在channels部分中添加以下内容:

'none' => [
    'driver' => 'monolog',
    'handler' => 'Monolog'Handler'NullHandler::class,
],

然后更新你的.env文件以使用这个记录器:

LOG_CHANNEL=none

一切都应该很好。

如果您的日志非常大,那么要么您记录了很多日志,要么您的应用程序抛出了很多错误。您应该首先检查日志,看看是否可以减少正在写入的数据。

您也可以切换到日常日志记录,然后有一个删除旧日志文件的作业。

下一步要做的是将日志配置更新为每天,而不是config/app.php 中的默认单个

Laravel将处理每天轮换文件,并在5天后删除旧的日志文件,或者如果您需要保留更多app.max_log_files的值。

最大每日日志文件数

在使用每日日志模式时,默认情况下Laravel只保留日志文件的five days。如果您想调整保留文件的数量,可以在app配置文件中添加log_max_files配置值:

配置>gt;app.php

'log_max_files' => 30

更多信息:https://laravel.com/docs/5.5/errors

对我来说,wamp中的文件夹"tmp"增长了15千兆!!经过一些研究,我发现原因是xdebug扩展我只是简单地调整它不要发送调试信息,从php.ini:

xdebug.profiler_enable = 0

您可以通过注释以下行来禁用写入操作Log::

Log::useFiles(storage_path().'/logs/laravel.log');

start/global.php

但首先,您应该弄清楚为什么您的日志文件那么大?其次,为文件提供某种归档功能也会有所帮助。也许一天两次。

希望能有所帮助。祝你好运

是的,您需要编辑核心laravel文件才能不保存日志文件。。

转到vendor->laravel->framework->src->Illuminate->Log->Writer.php然后注释掉函数__call中的所有代码,如下所示。

public function __call($method, $parameters)
{
    // if (in_array($method, $this->levels))
    // {
    //  call_user_func_array(array($this, 'fireLogEvent'), array_merge(array($method), $parameters));
    //  $method = 'add'.ucfirst($method);
    //  return $this->callMonolog($method, $parameters);
    // }
    // throw new 'BadMethodCallException("Method [$method] does not exist.");
}

您的日志将永远不会被保存。