Skip to content

Commit f8c4939

Browse files
author
Dmitry Tarasov
committed
Transports refactoring
1 parent 557cd0e commit f8c4939

5 files changed

Lines changed: 58 additions & 54 deletions

File tree

run/standalone.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
require '../vendor/autoload.php';
44

5-
$logger = new Stackify\Log\Standalone\Logger('test.com', 'myPC');
5+
//$transport = null;
6+
$transport = new Stackify\Log\Transport\CurlTransport('aa');
7+
$logger = new Stackify\Log\Standalone\Logger('test.com', 'myPC', $transport);
68

79
session_start();
810
$_SESSION['user_id'] = 42;

src/Stackify/Log/MessageBuilder.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Stackify\Log\Entities\Api\StackifyError;
99
use Stackify\Log\Entities\ErrorWrapper;
1010
use Stackify\Log\Entities\LogEntryInterface;
11+
use Stackify\Log\Entities\Transport\ApiMessage;
1112
use Stackify\Log\Entities\Transport\AgentMessage;
1213
use Stackify\Exceptions\InitializationException;
1314

@@ -36,18 +37,19 @@ public function getAgentMessage(LogEntryInterface $logEntry)
3637
return $this->encodeJSON($message). PHP_EOL;
3738
}
3839

39-
public function getApiMessage(LogEntryInterface $logEntry)
40+
/**
41+
* @param \Stackify\Log\Entities\Api\LogMsg[] $logMsgs
42+
*/
43+
public function getApiMessage(array $logMsgs)
4044
{
41-
$logMsg = $this->createLogMsg($logEntry);
42-
// @TODO implement
43-
$message = new ApiMessage($this->loggerName, $this->appName, $logMsg);
45+
$message = new ApiMessage($this->loggerName, $this->appName, $logMsgs);
4446
return $this->encodeJSON($message);
4547
}
4648

4749
/**
4850
* @return \Stackify\Log\Entities\Api\LogMsg
4951
*/
50-
protected function createLogMsg(LogEntryInterface $logEntry)
52+
public function createLogMsg(LogEntryInterface $logEntry)
5153
{
5254
$logMsg = new LogMsg(
5355
$logEntry->getLevel(),

src/Stackify/Log/Monolog/Handler.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Stackify\Log\MessageBuilder;
66
use Stackify\Log\Transport\TransportInterface;
7-
use Stackify\Log\Transport\DefaultTransport;
7+
use Stackify\Log\Transport\AgentTransport;
88

99
use Monolog\Logger;
1010
use Monolog\Handler\AbstractHandler;
@@ -22,7 +22,7 @@ public function __construct($appName, $environmentName, TransportInterface $tran
2222
parent::__construct($level, $bubble);
2323
$messageBuilder = new MessageBuilder('Stackify Monolog v.1.0', $appName, $environmentName);
2424
if (null === $transport) {
25-
$transport = new DefaultTransport();
25+
$transport = new AgentTransport();
2626
}
2727
$transport->setMessageBuilder($messageBuilder);
2828
$this->transport = $transport;
Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
1-
<?php
2-
3-
namespace Stackify\Log\Standalone;
4-
5-
use Stackify\Log\MessageBuilder;
6-
use Stackify\Log\Transport\TransportInterface;
7-
use Stackify\Log\Transport\DefaultTransport;
8-
9-
use Psr\Log\AbstractLogger;
10-
11-
class Logger extends AbstractLogger
12-
{
13-
14-
/**
15-
* @var \Stackify\Log\Transport\TransportInterface
16-
*/
17-
private $transport;
18-
19-
public function __construct($appName, $environmentName, TransportInterface $transport = null)
20-
{
21-
$messageBuilder = new MessageBuilder('Stackify PHP Logger v.1.0', $appName, $environmentName);
22-
if (null === $transport) {
23-
$transport = new DefaultTransport();
24-
}
25-
$transport->setMessageBuilder($messageBuilder);
26-
$this->transport = $transport;
27-
}
28-
29-
public function __destruct()
30-
{
31-
$this->transport->finish();
32-
}
33-
34-
public function log($level, $message, array $context = array())
35-
{
36-
$logEvent = array(
37-
'message' => (string) $message,
38-
'context' => $context,
39-
'level' => $level,
40-
'milliseconds' => round(microtime(true) * 1000),
41-
);
42-
$this->transport->addEntry(new LogEntry($logEvent));
43-
}
44-
1+
<?php
2+
3+
namespace Stackify\Log\Standalone;
4+
5+
use Stackify\Log\MessageBuilder;
6+
use Stackify\Log\Transport\TransportInterface;
7+
use Stackify\Log\Transport\AgentTransport;
8+
9+
use Psr\Log\AbstractLogger;
10+
11+
class Logger extends AbstractLogger
12+
{
13+
14+
/**
15+
* @var \Stackify\Log\Transport\TransportInterface
16+
*/
17+
private $transport;
18+
19+
public function __construct($appName, $environmentName, TransportInterface $transport = null)
20+
{
21+
$messageBuilder = new MessageBuilder('Stackify PHP Logger v.1.0', $appName, $environmentName);
22+
if (null === $transport) {
23+
$transport = new AgentTransport();
24+
}
25+
$transport->setMessageBuilder($messageBuilder);
26+
$this->transport = $transport;
27+
}
28+
29+
public function __destruct()
30+
{
31+
$this->transport->finish();
32+
}
33+
34+
public function log($level, $message, array $context = array())
35+
{
36+
$logEvent = array(
37+
'message' => (string) $message,
38+
'context' => $context,
39+
'level' => $level,
40+
'milliseconds' => round(microtime(true) * 1000),
41+
);
42+
$this->transport->addEntry(new LogEntry($logEvent));
43+
}
44+
4545
}

src/Stackify/Log/Transport/DefaultTransport.php renamed to src/Stackify/Log/Transport/AgentTransport.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* Transport creates local TCP connection to agent and writes data.
1212
* Agent aggregates log entries and sends to API.
1313
*/
14-
final class DefaultTransport extends AbstractTransport
14+
class AgentTransport extends AbstractTransport
1515
{
1616

1717
private $connectAttempts = 0;
@@ -40,7 +40,7 @@ public function finish()
4040

4141
protected function getTransportName()
4242
{
43-
return 'DefaultTransport';
43+
return 'AgentTransport';
4444
}
4545

4646
private function send($data)

0 commit comments

Comments
 (0)