首页 > 解决方案 > 如何连接 Laravel Lumen 和 Stackdriver

问题描述

Lumen 应用需要与 GCP stackdriver 连接。app\Logging使用以下内容创建一个新的记录器文件

class AppStackdriverLogger
{
    public function __invoke(array $config)
    {
        // putenv("GOOGLE_APPLICATION_CREDENTIALS=/storage/app/iprocure-app.json");
        $logging = new LoggingClient([
            'projectId' => env('GOOGLE_CLOUD_PROJECT_ID'),
            'keyFilePath' => storage_path("app/iprocure-app.json"),
        ]);
        $logger = $logging->psrBatchLogger('app');

        // $logger = LoggingClient::psrBatchLogger('app');
        $handler = new PsrHandler($logger);

        return new Logger('stackdriver', [$handler]);
    }
}

记录器文件实例化一个新的记录器,该记录器写入GCP Stackdriver Logging 并在config\logging.php自定义句柄上添加,如下所示

    'stackdriver' => [
        'driver' => 'custom',
        'via' => App\Logging\AppStackdriverLogger::class,
    ],

其中 .env LOG_CHANNEL 指向它。

问题是当我尝试像这样在控制器中的某个位置登录时Log::debug("Somewhere in controller debug");,请求正常,但我在 Stackdriver Logging Logs Viewer 中看不到任何日志 Lumen 应用程序如何将日志写入 Stackdriver Logging。

标签: laravellogginglumengoogle-cloud-stackdriver

解决方案


推荐阅读