Lumen 调试日志未按预期工作

Lumen Debug Log not working as expected

我正在使用 Lumen 5.3,我不确定我应该如何实现调试模式。

在 .env 中,我有这个:

APP_DEBUG=true

在我的脚本中我有这个:

Log::debug("Test"); 

所以当我运行正确的脚本时它会登录storage/logs/lumen.log。

我设置了 APP_DEBUG=false 的值,但我输入的 Log::debug 行一直在登录 lumen.log。如何关闭调试级别的日志或是否有任何其他方式来实现我期望发生的事情?

流明更新

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

将以下内容添加到 app.php 文件的底部,在 return $app:

之前
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