如何禁用Laravel 5日志文件?

时间:2016-01-07 10:34:09

标签: php laravel laravel-5

我的 Laravel 5 网站正在使用1 GB磁盘空间的共享主机。但现在我有大约100 MB的日志文件。我如何禁用日志文件 Laravel 5

7 个答案:

答案 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配置值:

config>> app.php

'log_max_files' => 30

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

答案 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.");
}

您的日志永远不会保存。