我的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.");
}
您的日志将永远不会被保存。