From 99b6c06de4674dafebc03cf03a29a9cd763c826b Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Tue, 25 Jun 2024 11:07:18 +0800 Subject: [PATCH] Laravel Vapor - Development environemnt specific only changes - logging with specific channel (code sync from Exchange) --- .../CreateInvoiceTransactionProcessor.php | 25 ++++----- app/Http/Middleware/ApiResponseTimeLog.php | 3 +- app/Http/Middleware/WebResponseTimeLog.php | 3 +- config/logging.php | 54 +++++++++++++++++++ 4 files changed, 71 insertions(+), 14 deletions(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 43061e6a..68ae6dca 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -34,6 +34,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Mccarlosen\LaravelMpdf\Facades\LaravelMpdf; +use App\Classes\General\LogHelper; class CreateInvoiceTransactionProcessor { @@ -96,7 +97,7 @@ class CreateInvoiceTransactionProcessor $base_price_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::BASE_PRICE]); $warehouse_rate_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::WAREHOUSE_RATE]); $state_rate_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::STATE_RATE]); - Log::channel('priceCbmLog')->info(json_encode($state_rate_constant)); + LogHelper::channel('priceCbmLog')->info(json_encode($state_rate_constant)); $center_postcode_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::CENTER_POSTCODE]); $outstation_postcode_constant = $this->fetchesSegmentConstant->execute(['segment_id' => 1, 'reference' => SegmentConstants::OUTSTATION_POSTCODE]); @@ -124,18 +125,18 @@ class CreateInvoiceTransactionProcessor $warehouse_rate = is_object($selected_warehouse_rate) ? $selected_warehouse_rate->amount : 0; $stateId = $address->state_id; - Log::channel('priceCbmLog')->info('stateId: ' . $stateId); + LogHelper::channel('priceCbmLog')->info('stateId: ' . $stateId); $state_rate_constant = $this->getConstantByKey($state_rate_constant, $stateId); - Log::channel('priceCbmLog')->info('state_rate_constant: ' . json_encode($state_rate_constant)); + LogHelper::channel('priceCbmLog')->info('state_rate_constant: ' . json_encode($state_rate_constant)); // get $state_rate $postcode = $address->postcode; $this->checkPostcodeExistInConstant($center_postcode_constant, $postcode) === true ? $state_select = 'center' : '' ; - Log::channel('priceCbmLog')->info('state_select: ' . $state_select); + LogHelper::channel('priceCbmLog')->info('state_select: ' . $state_select); $this->checkPostcodeExistInConstant($outstation_postcode_constant, $postcode) === true ? $state_select = 'outstation' : '' ; - Log::channel('priceCbmLog')->info('state_select: ' . $state_select); + LogHelper::channel('priceCbmLog')->info('state_select: ' . $state_select); $state_rate_constant = (array)$state_rate_constant; - Log::channel('priceCbmLog')->info('state_rate_constant: ' . json_encode($state_rate_constant)); + LogHelper::channel('priceCbmLog')->info('state_rate_constant: ' . json_encode($state_rate_constant)); $state_rate = $state_select == '' ? 0 : $state_rate_constant[$state_select]; $container = $packing_list->containers()->first(); @@ -174,13 +175,13 @@ class CreateInvoiceTransactionProcessor $minimum_charge = 0; } - Log::channel('priceCbmLog')->info('$base_price: ' . $base_price); - Log::channel('priceCbmLog')->info('$segment_price: ' . $segment_price); - Log::channel('priceCbmLog')->info('$warehouse_rate: ' . $warehouse_rate); - Log::channel('priceCbmLog')->info('$state_rate: ' . $state_rate); + LogHelper::channel('priceCbmLog')->info('$base_price: ' . $base_price); + LogHelper::channel('priceCbmLog')->info('$segment_price: ' . $segment_price); + LogHelper::channel('priceCbmLog')->info('$warehouse_rate: ' . $warehouse_rate); + LogHelper::channel('priceCbmLog')->info('$state_rate: ' . $state_rate); $price_cbm = $base_price + $segment_price + $warehouse_rate + $state_rate; - Log::channel('priceCbmLog')->info('$price_cbm: ' . $price_cbm); - Log::channel('priceCbmLog')->info(''); + LogHelper::channel('priceCbmLog')->info('$price_cbm: ' . $price_cbm); + LogHelper::channel('priceCbmLog')->info(''); $total_cbm = $price_cbm * ($cbm + $minimum_charge + $over_weight_cbm); diff --git a/app/Http/Middleware/ApiResponseTimeLog.php b/app/Http/Middleware/ApiResponseTimeLog.php index aae6d91e..a44b0d63 100644 --- a/app/Http/Middleware/ApiResponseTimeLog.php +++ b/app/Http/Middleware/ApiResponseTimeLog.php @@ -5,6 +5,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; +use App\Classes\General\LogHelper; class ApiResponseTimeLog { @@ -22,7 +23,7 @@ class ApiResponseTimeLog $endTime = microtime(true); // End time $responseTime = $endTime - $startTime; // Calculate the response time - Log::channel('apiResponseTimeLog')->info("\nRequest to route: {$uri} \nRoute name: {$routeName} \nTime Taken: " . number_format($responseTime * 1000, 2) . "ms\n"); + LogHelper::channel('apiResponseTimeLog')->info("\nRequest to route: {$uri} \nRoute name: {$routeName} \nTime Taken: " . number_format($responseTime * 1000, 2) . "ms\n"); return $response; } diff --git a/app/Http/Middleware/WebResponseTimeLog.php b/app/Http/Middleware/WebResponseTimeLog.php index 9a4c3e6e..f165eaac 100644 --- a/app/Http/Middleware/WebResponseTimeLog.php +++ b/app/Http/Middleware/WebResponseTimeLog.php @@ -5,6 +5,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; +use App\Classes\General\LogHelper; class WebResponseTimeLog { @@ -22,7 +23,7 @@ class WebResponseTimeLog $endTime = microtime(true); // End time $responseTime = $endTime - $startTime; // Calculate the response time - Log::channel('webResponseTimeLog')->info("\nRequest to route: {$uri} \nRoute name: {$routeName} \nTime Taken: " . number_format($responseTime * 1000, 2) . "ms\n"); + LogHelper::channel('webResponseTimeLog')->info("\nRequest to route: {$uri} \nRoute name: {$routeName} \nTime Taken: " . number_format($responseTime * 1000, 2) . "ms\n"); return $response; } diff --git a/config/logging.php b/config/logging.php index c1833677..be1ca5f8 100644 --- a/config/logging.php +++ b/config/logging.php @@ -155,18 +155,72 @@ return [ 'level' => 'info', ], + 'apiResponseTimeLog_vapor' => [ + 'driver' => 'custom', + 'via' => \App\Logging\CloudWatchLoggerFactory::class, + 'formatter' => Monolog\Formatter\JsonFormatter::class, + 'cloudwatch_stream_name' => 'apiResponseTimeLog_vapor', + 'sdk' => [ + 'region' => env('AWS_MY_REGION'), + 'version' => 'latest', + 'credentials' => [ + 'key' => env('AWS_CW_ACCESS'), + 'secret' => env('AWS_CW_SECRET') + ] + ], + 'retention' => 3, //cief todo: retention to be updated + 'level' => 'debug', + 'groupNamePrefix' => env('CLOUDWATCH_LOGGROUP_PREFIX'), + ], + 'webResponseTimeLog' => [ 'driver' => 'single', 'path' => storage_path('logs/webResponseTimeLog.log'), 'level' => 'info', ], + 'webResponseTimeLog_vapor' => [ + 'driver' => 'custom', + 'via' => \App\Logging\CloudWatchLoggerFactory::class, + 'formatter' => Monolog\Formatter\JsonFormatter::class, + 'cloudwatch_stream_name' => 'webResponseTimeLog_vapor', + 'sdk' => [ + 'region' => env('AWS_MY_REGION'), + 'version' => 'latest', + 'credentials' => [ + 'key' => env('AWS_CW_ACCESS'), + 'secret' => env('AWS_CW_SECRET') + ] + ], + 'retention' => 3, //cief todo: retention to be updated + 'level' => 'debug', + 'groupNamePrefix' => env('CLOUDWATCH_LOGGROUP_PREFIX'), + ], + 'priceCbmLog' => [ 'driver' => 'single', 'path' => storage_path('logs/priceCbmLog.log'), 'level' => 'info', ], + 'priceCbmLog_vapor' => [ + 'driver' => 'custom', + 'via' => \App\Logging\CloudWatchLoggerFactory::class, + 'formatter' => Monolog\Formatter\JsonFormatter::class, + 'cloudwatch_stream_name' => 'priceCbmLog_vapor', + 'sdk' => [ + 'region' => env('AWS_MY_REGION'), + 'version' => 'latest', + 'credentials' => [ + 'key' => env('AWS_CW_ACCESS'), + 'secret' => env('AWS_CW_SECRET') + ] + ], + 'retention' => 3, //cief todo: retention to be updated + 'level' => 'debug', + 'groupNamePrefix' => env('CLOUDWATCH_LOGGROUP_PREFIX'), + ], + 'deletePaidGroupOrder' => [ 'driver' => 'single', 'path' => storage_path('logs/deletePaidGroupOrder.log'),