在 Google App Engine Standard 上使用 PHP Lumen 的 Stackdriver
Stackdriver with PHP Lumen on Google App Engine Standard
我的目的是使用 Google Stackdriver 管理我的应用程序的日志。该应用程序是流明 5.8。实际上它在本地工作,但如果部署在我的 Google App Engine 应用程序上,它不会返回任何错误,但不会报告任何日志。有步骤:
- 安装Google云包
composer require google/cloud
- 创建我的 Stackdriver 记录器class
<?php
namespace App\Logging;
use Google\Cloud\Logging\LoggingClient;
use Monolog\Handler\PsrHandler;
use Monolog\Logger;
class CreateStackdriverLogger
{
/**
* Create a custom Monolog instance.
*
* @param array $config
* @return \Monolog\Logger
*/
public function __invoke(array $config)
{
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . config('google.service_account.filepath'));
$logger = LoggingClient::psrBatchLogger('app');
$handler = new PsrHandler($logger);
return new Logger('stackdriver', [$handler]);
}
}
- 在我的 app/config 文件夹中创建我的配置文件 logging.php
<?php
use Monolog\Handler\StreamHandler;
use Monolog\Handler\SyslogUdpHandler;
use App\Logging\CreateStackdriverLogger;
return [
'channels' => [
'stackdriver' => [
'driver' => 'custom',
'via' => CreateStackdriverLogger::class,
'level' => 'debug',
],
...
- 在 app/bootstrap/app 中注册我的 loggin.php 配置文件。php
$app->configure('logging');
我做错了什么?
知道了。问题出在我的 php.ini :
extension=grpc.so
extension=protobuf.so
extension=mongodb.so
删除 grpc.so 和 protobuf.so 它恢复正常工作
我的目的是使用 Google Stackdriver 管理我的应用程序的日志。该应用程序是流明 5.8。实际上它在本地工作,但如果部署在我的 Google App Engine 应用程序上,它不会返回任何错误,但不会报告任何日志。有步骤:
- 安装Google云包
composer require google/cloud
- 创建我的 Stackdriver 记录器class
<?php
namespace App\Logging;
use Google\Cloud\Logging\LoggingClient;
use Monolog\Handler\PsrHandler;
use Monolog\Logger;
class CreateStackdriverLogger
{
/**
* Create a custom Monolog instance.
*
* @param array $config
* @return \Monolog\Logger
*/
public function __invoke(array $config)
{
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . config('google.service_account.filepath'));
$logger = LoggingClient::psrBatchLogger('app');
$handler = new PsrHandler($logger);
return new Logger('stackdriver', [$handler]);
}
}
- 在我的 app/config 文件夹中创建我的配置文件 logging.php
<?php
use Monolog\Handler\StreamHandler;
use Monolog\Handler\SyslogUdpHandler;
use App\Logging\CreateStackdriverLogger;
return [
'channels' => [
'stackdriver' => [
'driver' => 'custom',
'via' => CreateStackdriverLogger::class,
'level' => 'debug',
],
...
- 在 app/bootstrap/app 中注册我的 loggin.php 配置文件。php
$app->configure('logging');
我做错了什么?
知道了。问题出在我的 php.ini :
extension=grpc.so
extension=protobuf.so
extension=mongodb.so
删除 grpc.so 和 protobuf.so 它恢复正常工作