如何禁用Laravel 5日志文件?

Ash*_*oja 20 php laravel laravel-5

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

jed*_*ylo 16

为了完全禁用日志记录,您需要覆盖Laravel设置的默认日志处理程序.您可以轻松地执行此操作

$nullLogger = new NullHandler();
\Log::getMonolog()->setHandlers(array($nullLogger));
Run Code Online (Sandbox Code Playgroud)

在处理请求之前,您需要尽早调用,例如,您可以在bootstrap/app.php中执行此操作:

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

return $app;
Run Code Online (Sandbox Code Playgroud)

  • 没有仅配置的解决方案吗? (3认同)

小智 11

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

您还可以切换到每日日志记录,然后找到删除旧日志文件的作业.

接下来要做的是将日志记录配置更新为每日而不是默认单个 config/app.php

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


Tym*_*iev 9

我知道这有点旧,但是:

在 config/logging.php: 在channels部分添加这些:

'none' => [
    'driver' => 'monolog',
    'handler' => \Monolog\Handler\NullHandler::class,
],
Run Code Online (Sandbox Code Playgroud)

然后更新您的 .env 文件以使用此记录器:

LOG_CHANNEL=none
Run Code Online (Sandbox Code Playgroud)

一切都应该正常工作。

  • 请注意,`NullHandler` 的完整类名是 `\Monolog\Handler\NullHandler` (2认同)
  • @TymurValiiev Doh,你是对的。我知道要寻找它,但我仍然忽略了其他处理程序是通过顶部的“use”语句引用的。我应该对“NullHandler”做同样的事情。我会保留我的评论并进行编辑,以防它对某人有帮助。 (2认同)