流明调试日志未按预期工作

时间:2018-05-25 03:01:18

标签: php laravel lumen monolog

我使用的是Lumen 5.3,而且我不确定如何实现调试模式。

在.env中,我有这个:

APP_DEBUG=true

在我的剧本中我有这个:

Log::debug("Test"); 

因此,当我运行正确的脚本时,它将登录storage / logs / lumen.log。

我已经使APP_DEBUG = false的值,但我放置的Log :: debug行保持登录lumen.log。如何关闭调试级别的日志,还是以其他任何方式实现我期望发生的事情?

1 个答案:

答案 0 :(得分:2)

流明更新

道歉我没有正确阅读,对于Lumen 5.3,您可以覆盖bootstrap/app.php内的日志记录,推送您自己的日志处理程序。

return $app

之前,在app.php文件的底部添加以下内容
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
...
$app->configureMonologUsing(function($monolog) {
    $handler = new StreamHandler(storage_path('logs/lumen.log'), Logger::ERROR);
    $handler->setFormatter(new LineFormatter(null, null, true, true));
    $monolog->pushHandler($handler);

    return $monolog;
});

在代码示例中,您将只记录ERROR级别。您需要导入名称空间。

要完全禁用日志记录,您可以执行以下操作

$app->configureMonologUsing(function($monolog) {
    $monolog->pushHandler(new NullHandler(Logger::DEBUG));

    return $monolog;
});

离开原来的Laravel 5.3回答

对于laravel 5.3,日志级别在app/config.php内配置。

默认值通常为

'log_level' => env('APP_LOG_LEVEL', 'debug'),

因此,如果您将.env中的APP_LOG_LEVEL更改为生产服务器上的error,则不会记录整个应用程序中散布的调试消息。

在.env内

APP_LOG_LEVEL=error