Skip to content

Commit eb7eb59

Browse files
authored
Merge pull request #9 from BulkGate/debug-logging
Debug logging
2 parents f3468da + 200cd2e commit eb7eb59

File tree

5 files changed

+50
-30
lines changed

5 files changed

+50
-30
lines changed

src/Debug/Logger.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,31 @@ class Logger
1313
{
1414
use Strict;
1515

16+
public /*readonly*/ string $platform_version;
17+
18+
public /*readonly*/ string $module_version;
19+
1620
private Repository\Logger $repository;
1721

18-
public function __construct(Repository\Logger $repository)
22+
public function __construct(string $platform_version, string $module_version, Repository\Logger $repository)
1923
{
2024
$this->repository = $repository;
25+
$this->platform_version = $platform_version;
26+
$this->module_version = $module_version;
2127
}
2228

2329

2430
public function log(string $message, string $level = 'error'): void
2531
{
26-
$this->repository->log($message, time(), $level);
32+
$this->repository->log($message, time(), $level, [
33+
'platform_version' => $this->platform_version,
34+
'module_version' => $this->module_version,
35+
]);
2736
}
2837

2938

3039
/**
31-
* @return list<array{message: string, created: int}>
40+
* @return list<array{message: string, created: int, parameters: array<string, mixed>}>>
3241
*/
3342
public function getList(string $level = 'error'): array
3443
{

src/Debug/Repository/Logger.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99

1010
interface Logger
1111
{
12-
public function log(string $message, int $created, string $level = 'error'): void;
12+
/**
13+
* @param array<string, mixed> $parameters
14+
*/
15+
public function log(string $message, int $created, string $level = 'error', array $parameters = []): void;
1316

1417

1518
/**
16-
* @return list<array{message: string, created: int}>
19+
* @return list<array{message: string, created: int, parameters: array<string, mixed>}>>
1720
*/
1821
public function getList(string $level = 'error'): array;
1922
}

src/Debug/Repository/LoggerSettings.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function setup(?int $limit = null): void
3232
}
3333

3434

35-
public function log(string $message, int $created, string $level = 'error'): void
35+
public function log(string $message, int $created, string $level = 'error', array $parameters = []): void
3636
{
3737
$list = $this->settings->load(self::Key . $level);
3838

@@ -44,6 +44,7 @@ public function log(string $message, int $created, string $level = 'error'): voi
4444
$list[] = [
4545
'message' => $message,
4646
'created' => $created,
47+
'parameters' => $parameters,
4748
];
4849

4950
$this->settings->set(self::Key . $level, count($list) > $this->limit ? array_slice($list, 1, $this->limit) : $list, ['type' => 'array']);
@@ -61,6 +62,7 @@ public function getList(string $level = 'error'): array
6162
$output[] = [
6263
'message' => isset($item['message']) && is_scalar($item['message']) ? (string) $item['message'] : '',
6364
'created' => isset($item['created']) && is_scalar($item['created']) ? (int) $item['created'] : 0,
65+
'parameters' => isset($item['parameters']) && is_array($item['parameters']) ? $item['parameters'] : [],
6466
];
6567
}
6668

tests/Debug/LoggerTest.phpt

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class LoggerTest extends TestCase
1717
{
1818
public function testLog(): void
1919
{
20-
$logger = new Logger($repository = Mockery::mock(Repository::class));
20+
$logger = new Logger('6.3.0', '1.0.0', $repository = Mockery::mock(Repository::class));
2121

22-
$repository->shouldReceive('log')->with('test', Mockery::type('int'), 'level')->once();
22+
$repository->shouldReceive('log')->with('test', Mockery::type('int'), 'level', ['platform_version' => '6.3.0', 'module_version' => '1.0.0'])->once();
2323

2424
$logger->log('test', 'level');
2525

@@ -29,16 +29,22 @@ class LoggerTest extends TestCase
2929

3030
public function testGetList(): void
3131
{
32-
$logger = new Logger($repository = Mockery::mock(Repository::class));
33-
$repository->shouldReceive('getList')->with('level')->once()->andReturn([
34-
['message' => 'test1', 'created' => 5],
35-
['message' => 'test2', 'created' => 6]
36-
]);
37-
38-
Assert::same([
39-
['message' => 'test1', 'created' => 5],
40-
['message' => 'test2', 'created' => 6]
41-
], $logger->getList('level'));
32+
$logger = new Logger('6.3.0', '1.0.0', $repository = Mockery::mock(Repository::class));
33+
$repository->shouldReceive('getList')->with('error')->once()->ordered();
34+
$repository->shouldReceive('getList')->with('level')->once()->ordered();
35+
36+
$logger->getList();
37+
$logger->getList('level');
38+
39+
Assert::true(true);
40+
}
41+
42+
public function testVersions(): void
43+
{
44+
$logger = new Logger('6.3.0', '1.0.0', Mockery::mock(Repository::class));
45+
46+
Assert::same('6.3.0', $logger->platform_version);
47+
Assert::same('1.0.0', $logger->module_version);
4248
}
4349

4450

tests/Debug/Repository/LoggerSettingsTest.phpt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class LoggerSettingsTest extends TestCase
2525
$settings->shouldReceive('set')->with('static:log_level', [
2626
['message' => 'test1', 'created' => 5],
2727
['message' => 'test2', 'created' => 6],
28-
['message' => 'test3', 'created' => 7]
28+
['message' => 'test3', 'created' => 7, 'parameters' => []]
2929
], ['type' => 'array'])->once();
3030

3131
$repository->log('test3', 7, 'level');
@@ -46,7 +46,7 @@ class LoggerSettingsTest extends TestCase
4646
$settings->shouldReceive('set')->with('static:log_level', [
4747
['message' => 'test2', 'created' => 6],
4848
['message' => 'test3', 'created' => 7],
49-
['message' => 'test4', 'created' => 8]
49+
['message' => 'test4', 'created' => 8, 'parameters' => []]
5050
], ['type' => 'array'])->once();
5151

5252
$repository->log('test4', 8, 'level');
@@ -61,7 +61,7 @@ class LoggerSettingsTest extends TestCase
6161
$repository->setup(3);
6262
$settings->shouldReceive('load')->with('static:log_level')->once()->andReturnNull();
6363
$settings->shouldReceive('set')->with('static:log_level', [
64-
['message' => 'test4', 'created' => 8]
64+
['message' => 'test4', 'created' => 8, 'parameters' => []]
6565
], ['type' => 'array'])->once();
6666

6767
$repository->log('test4', 8, 'level');
@@ -74,21 +74,21 @@ class LoggerSettingsTest extends TestCase
7474
{
7575
$repository = new LoggerSettings($settings = Mockery::mock(Settings::class));
7676
$settings->shouldReceive('load')->with('static:log_level')->once()->andReturn([
77-
['message' => 'test1', 'created' => 5],
78-
['message' => 'test2', 'created' => 6],
79-
['message' => 'test3', 'created' => 7],
77+
['message' => 'test1', 'created' => 5, 'parameters' => ['test1' => 'test1']],
78+
['message' => 'test2', 'created' => 6, 'parameters' => ['test2' => 'test2']],
79+
['message' => 'test3', 'created' => 7, 'parameters' => ['test3' => 'test3']],
8080
[],
8181
['message' => []],
8282
['created' => []]
8383
]);
8484

8585
Assert::same([
86-
['message' => 'test1', 'created' => 5],
87-
['message' => 'test2', 'created' => 6],
88-
['message' => 'test3', 'created' => 7],
89-
['message' => '', 'created' => 0],
90-
['message' => '', 'created' => 0],
91-
['message' => '', 'created' => 0],
86+
['message' => 'test1', 'created' => 5, 'parameters' => ['test1' => 'test1']],
87+
['message' => 'test2', 'created' => 6, 'parameters' => ['test2' => 'test2']],
88+
['message' => 'test3', 'created' => 7, 'parameters' => ['test3' => 'test3']],
89+
['message' => '', 'created' => 0, 'parameters' => []],
90+
['message' => '', 'created' => 0, 'parameters' => []],
91+
['message' => '', 'created' => 0, 'parameters' => []],
9292
], $repository->getList('level'));
9393
}
9494

0 commit comments

Comments
 (0)