Skip to content

Commit c55f91e

Browse files
authored
Merge pull request #18 from ShoppinPal/psr3-logger
Psr3 logger
2 parents 56fe3c3 + fc7728a commit c55f91e

File tree

5 files changed

+313
-50
lines changed

5 files changed

+313
-50
lines changed

composer.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"require": {
77
"szeber/yapep_base": "0.3.x-dev",
88
"php": ">=7.1",
9-
"nesbot/carbon": "^1.21"
9+
"nesbot/carbon": "^1.21",
10+
"psr/log": "^1.0.0"
1011
},
1112
"autoload": {
1213
"psr-4": {
@@ -20,10 +21,12 @@
2021
"mockery/mockery": "^0.9.9",
2122
"swiftmailer/swiftmailer": "^6.0",
2223
"consolidation/robo": "^1.0.6",
23-
"josegonzalez/dotenv": "^3.0.0"
24+
"josegonzalez/dotenv": "^3.0.0",
25+
"monolog/monolog": "^1.23.0"
2426
},
2527
"suggest": {
2628
"aws/aws-sdk-php": "Allows using SQS for queueing",
29+
"monolog/monolog": "Allows using the LineFormatter",
2730
"swiftmailer/swiftmailer": "Allows using the swiftmailer library for e-mail sending"
2831
}
2932
}

composer.lock

Lines changed: 126 additions & 48 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Log/JsonFormatter.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
namespace ShoppinPal\YapepCommon\Log;
3+
4+
use DateTime;
5+
6+
class JsonFormatter extends \Monolog\Formatter\JsonFormatter
7+
{
8+
9+
public function format(array $record)
10+
{
11+
return parent::format($this->getReformattedRecord($record));
12+
}
13+
14+
protected function formatBatchJson(array $records)
15+
{
16+
return parent::formatBatchJson(array_map([$this, 'getReformattedRecord'], $records));
17+
}
18+
19+
protected function getReformattedRecord(array $record)
20+
{
21+
return array_merge(
22+
$record['context'],
23+
[
24+
'msg' => $record['message'],
25+
'channel' => $record['channel'],
26+
'level' => $record['level'],
27+
'level_name' => $record['level_name'],
28+
'time' => $record['datetime']->format(DateTime::ATOM),
29+
'extra' => $record['extra'],
30+
'v' => 0,
31+
]
32+
);
33+
}
34+
}

src/Log/LineFormatter.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
namespace ShoppinPal\YapepCommon\Log;
3+
4+
use Monolog\Formatter\FormatterInterface;
5+
6+
class LineFormatter implements FormatterInterface
7+
{
8+
9+
public function format(array $record)
10+
{
11+
return sprintf(
12+
"%s %s(%d) [%s]: %s %s\n",
13+
date('d-M-Y H:i:s'),
14+
$record['level_name'],
15+
$record['level'],
16+
str_pad($record['context']['tag'], 20),
17+
$record['message'],
18+
(count($record['context']['fields']) > 0 ? sprintf(
19+
'(DATA: "%s")',
20+
json_encode($record['context']['fields'])
21+
) : '')
22+
);
23+
}
24+
25+
public function formatBatch(array $records)
26+
{
27+
$result = [];
28+
29+
foreach ($records as $record)
30+
{
31+
$result[] = $this->format($record);
32+
}
33+
34+
return implode("\n", $result);
35+
}
36+
37+
}

0 commit comments

Comments
 (0)