Skip to content

Commit 7e2958a

Browse files
authored
Merge pull request #7 from fabacino/feature/remove-monolog-dependency
Remove dependency to Monolog, accept any PSR-3 compatible logger
2 parents 91364e0 + 8366b7f commit 7e2958a

File tree

8 files changed

+497
-221
lines changed

8 files changed

+497
-221
lines changed

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ dbg([
4545
a string
4646
Array
4747
(
48-
[id] => 123
4948
[token] => dp83kspo
5049
[is_default] => true
5150
)
@@ -105,10 +104,10 @@ dbginit(['log_file' => '/path/to/logfile']);
105104
dbglog($this->doSomething());
106105
```
107106

108-
Alternatively you can pass your own monolog logger instance:
107+
Alternatively you can pass your own PSR-3 compatible logger:
109108

110109
```php
111-
$logger = new Logger('channel-name');
110+
$logger = new YourLogger();
112111
...
113112
dbginit(['logger' => $logger]);
114113
dbglog($this->doSomething());

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
],
1212
"require": {
1313
"php": ">=7.0",
14-
"monolog/monolog": "^1.23"
14+
"psr/log": "^1.0"
1515
},
1616
"require-dev": {
1717
"phpunit/phpunit": "^6.0"

composer.lock

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

src/Debug.php

Lines changed: 15 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111

1212
namespace Fabacino\Debug;
1313

14-
use Monolog\Logger;
15-
use Monolog\Formatter\LineFormatter;
16-
use Monolog\Handler\NullHandler;
17-
use Monolog\Handler\StreamHandler;
14+
use Fabacino\Debug\Logger;
15+
use Psr\Log\LoggerInterface;
1816

1917
/**
2018
* Main class.
@@ -27,13 +25,6 @@ class Debug
2725
const USE_VARDUMP = 1;
2826
const USE_HTMLENTITIES = 2;
2927

30-
/**
31-
* Default values for Monolog options.
32-
*/
33-
const CHANNEL_NAME = 'fabacino/debug';
34-
const OUTPUT_FORMAT = "%datetime%: %message%\n";
35-
const DATE_FORMAT = null;
36-
3728
/**
3829
* Default flags for tweaking the output.
3930
*
@@ -42,9 +33,9 @@ class Debug
4233
private $defaultFlags;
4334

4435
/**
45-
* Monolog logger.
36+
* The logger instance.
4637
*
47-
* @var Logger
38+
* @var LoggerInterface
4839
*/
4940
private $Logger;
5041

@@ -58,12 +49,12 @@ class Debug
5849
/**
5950
* Constructor.
6051
*
61-
* @param int $defaultFlags Default flags for tweaking the output.
62-
* @param Logger $Logger The monolog logger.
52+
* @param int $defaultFlags Default flags for tweaking the output.
53+
* @param LoggerInterface $Logger The logger instance.
6354
*
6455
* @return void
6556
*/
66-
private function __construct(int $defaultFlags, Logger $Logger)
57+
private function __construct(int $defaultFlags, LoggerInterface $Logger)
6758
{
6859
$this->defaultFlags = $defaultFlags;
6960
$this->Logger = $Logger;
@@ -90,10 +81,11 @@ public static function getInstance(): Debug
9081
* - use_vardump: Use vardump for debug output? (boolean, default = false)
9182
* - use_htmlentities: Use htmlentities for debug output? (boolean, default = false)
9283
* - log_file: The log file. (string, default = null)
93-
* - logger: The logger to use. (Logger, default = null)
84+
* - logger: The logger to use. (LoggerInterface, default = null)
9485
*
9586
* The settings `log_file` and `logger` are only used when calling `logValue()`.
96-
* If `logger` is specified, `log_file` will be ignored.
87+
* If `logger` is specified, `log_file` will be ignored. If neither is present,
88+
* nothing will be logged.
9789
*
9890
* @param array $settings Settings.
9991
*
@@ -102,46 +94,28 @@ public static function getInstance(): Debug
10294
public static function init(array $settings = [])
10395
{
10496
$defaultFlags = 0;
97+
10598
if (isset($settings['use_vardump']) && $settings['use_vardump']) {
10699
$defaultFlags |= self::USE_VARDUMP;
107100
}
108101
if (isset($settings['use_htmlentities']) && $settings['use_htmlentities']) {
109102
$defaultFlags |= self::USE_HTMLENTITIES;
110103
}
111104

112-
if (isset($settings['logger']) && $settings['logger'] instanceof Logger) {
105+
if (isset($settings['logger']) && $settings['logger'] instanceof LoggerInterface) {
113106
$Logger = $settings['logger'];
114107
} else {
115108
if (isset($settings['log_file'])) {
116-
$Stream = self::initStream($settings['log_file']);
109+
$Logger = new Logger($settings['log_file']);
117110
} else {
118111
// We didn't get any file to log.
119-
$Stream = new NullHandler(Logger::DEBUG);
112+
$Logger = new Logger();
120113
}
121-
122-
$Logger = new Logger(self::CHANNEL_NAME);
123-
$Logger->pushHandler($Stream);
124114
}
125115

126116
self::$Instance = new static($defaultFlags, $Logger);
127117
}
128118

129-
/**
130-
* Create stream handler for logger.
131-
*
132-
* @param string $logFile The log file.
133-
*
134-
* @return StreamHandler
135-
*/
136-
private static function initStream(string $logFile): StreamHandler
137-
{
138-
$Stream = new StreamHandler($logFile, Logger::DEBUG);
139-
$Stream->setFormatter(
140-
new LineFormatter(self::OUTPUT_FORMAT, self::DATE_FORMAT, true)
141-
);
142-
return $Stream;
143-
}
144-
145119
/**
146120
* Print debug value
147121
*
@@ -205,7 +179,7 @@ public function debugValue($var, int $flags = null)
205179
*/
206180
public function logValue($var, int $flags = null)
207181
{
208-
$this->Logger->addDebug(static::debugValue($var, $flags));
182+
$this->Logger->debug(static::debugValue($var, $flags));
209183
}
210184

211185
/**

0 commit comments

Comments
 (0)