Skip to content

Commit 7b124fe

Browse files
committed
added improvements on adapter builder for logger and renamed PSRAdapter
1 parent 696ca5e commit 7b124fe

File tree

4 files changed

+20
-27
lines changed

4 files changed

+20
-27
lines changed

CHANGES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
7.1.4 (Sep XX, 2022)
22
- Updated dependencies to allow `psr/log` 2 and 3.
33
- Removed `phpdocumentor/phpdocumentor` dependency.
4-
- Updated `Logger` and `LoggerTrait` to be compliant with `psr/log` 3.
4+
- Added `PSR3LoggerAdapter` to support `psr/log: 1 - 3` versions.
55

66
7.1.3 (Aug 24, 2022)
77
- Updated `predis` dependency to `^2.0`.

src/SplitIO/Component/Initialization/LoggerFactory.php

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
use Psr\Log\LogLevel;
55
use SplitIO\Component\Log\Logger;
6-
use SplitIO\Component\Log\LoggerAdapterPSR;
6+
use SplitIO\Component\Log\PSR3LoggerAdapter;
77
use SplitIO\Component\Log\LogLevelEnum;
88
use SplitIO\Component\Log\Handler\Echos;
99
use SplitIO\Component\Log\Handler\Stdout;
@@ -16,35 +16,26 @@ class LoggerFactory
1616
* Builds defaultLogger
1717
*
1818
* @param $options
19-
* @param $level
20-
* @return SplitIO\Component\Log\Logger
19+
* @return SplitIO\Component\Log\Handler
2120
*/
22-
private static function setDefaultLogger(array $options, $level)
21+
private static function buildAdapter(array $options)
2322
{
2423
$adapter = (isset($options['adapter'])) ? $options['adapter'] : null;
2524

2625
switch ($adapter) {
2726
case 'stdout':
28-
$logAdapter = new Stdout();
29-
break;
27+
return new Stdout();
3028

3129
case 'echo':
32-
$logAdapter = new Echos();
33-
break;
30+
return new Echos();
3431

3532
case 'void':
36-
$logAdapter = new VoidHandler();
37-
break;
33+
return new VoidHandler();
3834

3935
case 'syslog':
4036
default:
41-
$logAdapter = new Syslog();
42-
break;
37+
return new Syslog();
4338
}
44-
45-
46-
47-
return new Logger($logAdapter, $level);
4839
}
4940

5041
/**
@@ -61,9 +52,9 @@ public static function setupLogger(array $options)
6152
}
6253

6354
if (!isset($options['psr3-instance'])) {
64-
return self::setDefaultLogger($options, $level);
55+
return new Logger(self::buildAdapter($options), $level);
6556
}
6657

67-
return new Logger(new LoggerAdapterPSR($options['psr3-instance']), $level);
58+
return new Logger(new PSR3LoggerAdapter($options['psr3-instance']), $level);
6859
}
6960
}

src/SplitIO/Component/Log/LoggerAdapterPSR.php renamed to src/SplitIO/Component/Log/PSR3LoggerAdapter.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
use SplitIO\Component\Log\Handler\LogHandlerInterface;
66

77
/**
8-
* Class LoggerAdapterPSR
8+
* Class PSR3LoggerAdapter
99
* Logger Handler for PSR3
1010
* @package namespace SplitIO\Component\Log;
1111
*/
12-
class LoggerAdapterPSR implements LogHandlerInterface
12+
class PSR3LoggerAdapter implements LogHandlerInterface
1313
{
1414
/**
1515
* @var LogHandlerInterface
1616
*/
17-
protected $logger;
17+
private $logger;
1818

1919
/**
2020
* Logger constructor
@@ -32,12 +32,14 @@ public function __construct(LoggerInterface $logger)
3232
*/
3333
public function write($logLevel, $message)
3434
{
35-
try {
36-
if (!is_string($message) || !$message instanceof Stringable) {
37-
$message = json_encode($message);
35+
if (!is_string($message) || !$message instanceof Stringable) {
36+
try {
37+
$this->logger->log($logLevel, json_encode($message));
38+
} catch (\Exception $e) {
39+
$this->logger->log(LogLevel::ERROR, "error serializing non-stringable object when trying to log message of type " + gettype($message));
3840
}
41+
} else {
3942
$this->logger->log($logLevel, $message);
40-
} catch (\Exception $e) {
4143
}
4244
}
4345
}

src/SplitIO/Version.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
class Version
55
{
6-
const CURRENT = '7.1.4-rc4';
6+
const CURRENT = '7.1.4-rc5';
77
}

0 commit comments

Comments
 (0)