我的 Laravel 5 网站正在使用1 GB磁盘空间的共享主机。但现在我有大约100 MB的日志文件。我如何禁用日志文件 Laravel 5 ?
答案 0 :(得分:15)
为了完全禁用日志记录,您需要覆盖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;
答案 1 :(得分:11)
如果您的日志非常大,那么您要么记录很多,要么您的应用程序丢失了很多错误。您应首先检查日志,看看是否可以减少正在写入的数据。
您还可以切换到每日日志记录,然后找一份删除旧日志文件的作业。
接下来要做的是将日志记录配置更新为每日而不是config/app.php
Laravel将处理每天旋转文件并在5天后删除旧的日志文件,或者如果您需要更多的话,则删除app.max_log_files
的值。
答案 2 :(得分:1)
使用每日日志模式时,Laravel默认只保留five days
个日志文件。如果要调整保留文件的数量,可以在log_max_files
配置文件中添加app
配置值:
'log_max_files' => 30
答案 3 :(得分:0)
我知道这有点老了,但是:
在config / logging.php中:
在channels
部分中添加以下内容:
'none' => [
'driver' => 'monolog',
'handler' => NullHandler::class,
],
然后更新您的.env文件以使用此记录器:
LOG_CHANNEL=none
一切都会很好。
答案 4 :(得分:0)
对我来说,wamp 中的文件夹 'tmp' 增长了 15 giga!
经过一番研究,我发现原因是 xdebug 扩展
我只是调整它不发送调试信息,来自 php.ini
:
xdebug.profiler_enable = 0
答案 5 :(得分:-2)
您可以通过注释以下行来禁用写入操作Log ::
Log::useFiles(storage_path().'/logs/laravel.log');
start/global.php
中的
但首先,你应该找出为什么你的日志文件那么大? 其次,为您的文件提供某种存档功能也会有所帮助。也许一天两次。
希望它有所帮助。祝你好运!
答案 6 :(得分:-4)
是的,你肯定需要编辑核心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.");
}
您的日志永远不会保存。