-
Notifications
You must be signed in to change notification settings - Fork 439
/
Copy pathLogExtension.php
69 lines (56 loc) · 2.48 KB
/
LogExtension.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
namespace Enqueue\Client\ConsumptionExtension;
use Enqueue\Client\Config;
use Enqueue\Consumption\Context\PostMessageReceived;
use Enqueue\Consumption\Result;
use Enqueue\Util\Stringify;
use Psr\Log\LogLevel;
class LogExtension extends \Enqueue\Consumption\Extension\LogExtension
{
public function onPostMessageReceived(PostMessageReceived $context): void
{
$result = $context->getResult();
$message = $context->getMessage();
$logLevel = Result::REJECT == ((string) $result) ? LogLevel::ERROR : LogLevel::INFO;
if ($command = $message->getProperty(Config::COMMAND)) {
$reason = '';
$logMessage = "[client] Processed {command}\t{body}\t{result}";
if ($result instanceof Result && $result->getReason()) {
$reason = $result->getReason();
$logMessage .= ' {reason}';
}
$context->getLogger()->log($logLevel, $logMessage, [
'result' => str_replace('enqueue.', '', $result),
'reason' => $reason,
'command' => $command,
'queueName' => $context->getConsumer()->getQueue()->getQueueName(),
'body' => Stringify::that($message->getBody()),
'properties' => Stringify::that($message->getProperties()),
'headers' => Stringify::that($message->getHeaders()),
]);
return;
}
$topic = $message->getProperty(Config::TOPIC);
$processor = $message->getProperty(Config::PROCESSOR);
if ($topic && $processor) {
$reason = '';
$logMessage = "[client] Processed {topic} -> {processor}\t{body}\t{result}";
if ($result instanceof Result && $result->getReason()) {
$reason = $result->getReason();
$logMessage .= ' {reason}';
}
$context->getLogger()->log($logLevel, $logMessage, [
'result' => str_replace('enqueue.', '', $result),
'reason' => $reason,
'topic' => $topic,
'processor' => $processor,
'queueName' => $context->getConsumer()->getQueue()->getQueueName(),
'body' => Stringify::that($message->getBody()),
'properties' => Stringify::that($message->getProperties()),
'headers' => Stringify::that($message->getHeaders()),
]);
return;
}
parent::onPostMessageReceived($context);
}
}