アップグレードlaravel 5.4から5.6にアップグレード。Laravel削除$ app-> configureMonologUsingバージョン5.6以降
awsのチュートリアルはもう適用されません。 https://aws.Amazon.com/tw/blogs/developer/php-application-logging-with-Amazon-cloudwatch-logs-and-monolog/
誰でも私に$ app-> configureMonologUsing内のロジックを移行する場所をアドバイスできますか?
ありがとう
CloudWatchハンドラーライブラリの最新バージョンを次のようにインストールします。
composer require maxbanton/cwh
次のように、config/logging.php
にcustom
チャネルを追加できます。
'cloudwatch' => [
'driver' => 'custom',
'via' => \App\Logging\CloudWatchLoggerFactory::class,
'sdk' => [
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
'version' => 'latest',
'credentials' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY')
]
],
'retention' => env('CLOUDWATCH_LOG_RETENTION',7),
'level' => env('CLOUDWATCH_LOG_LEVEL','error')
],
とファクトリクラスApp/Logging/CloudWatchLoggerFactory.php
として:
<?php
namespace App\Logging;
use Aws\CloudWatchLogs\CloudWatchLogsClient;
use Maxbanton\Cwh\Handler\CloudWatch;
use Monolog\Logger;
class CloudWatchLoggerFactory
{
/**
* Create a custom Monolog instance.
*
* @param array $config
* @return \Monolog\Logger
*/
public function __invoke(array $config)
{
$sdkParams = $config["sdk"];
$tags = $config["tags"] ?? [ ];
$name = $config["name"] ?? 'cloudwatch';
// Instantiate AWS SDK CloudWatch Logs Client
$client = new CloudWatchLogsClient($sdkParams);
// Log group name, will be created if none
$groupName = config('app.name') . '-' . config('app.env');
// Log stream name, will be created if none
$streamName = config('app.hostname');
// Days to keep logs, 14 by default. Set to `null` to allow indefinite retention.
$retentionDays = $config["retention"];
// Instantiate handler (tags are optional)
$handler = new CloudWatch($client, $groupName, $streamName, $retentionDays, 10000, $tags);
// Create a log channel
$logger = new Logger($name);
// Set handler
$logger->pushHandler($handler);
return $logger;
}
}
AWS EC2インスタンスで実行していて、リアルタイムでログを送信する多くの情報/デバッグメッセージをログに記録すると、アプリケーションの応答時間が遅くなる可能性があります。代わりに、CloudWatchエージェントでlaravel.logを監視して、新しいログエントリを5秒ごとに送信できます。 CloudWatchエージェントは、すべてのシステムログとCPUなどのシステムメトリックを出荷できるため、クラウドウォッチアラートを作成できます。