Skip to content

Commit 55deafb

Browse files
committed
Simplify passing of logger settings
1 parent 5d2b076 commit 55deafb

File tree

1 file changed

+27
-36
lines changed

1 file changed

+27
-36
lines changed

src/Debug.php

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,10 @@ public static function getInstance(): Debug
8787
* - use_vardump: Use vardump for debug output? (boolean, default = false)
8888
* - use_htmlentities: Use htmlentities for debug output? (boolean, default = false)
8989
* - log_file: The log file. (string, default = null)
90-
* - monolog: Settings for Monolog logger. (array, default = [])
91-
* - channel_name: The name of the channel. (string, default = self::CHANNEL_NAME)
92-
* - output_format: The output format. (string, default = self::OUTPUT_FORMAT)
93-
* - date_format: The date format. (string, default = self::DATE_FORMAT)
90+
* - logger: The logger to use. (Logger, default = null)
9491
*
95-
* The settings `log_file` and `monolog` are only used when calling `logValue()`.
92+
* The settings `log_file` and `logger` are only used when calling `logValue()`.
93+
* If `logger` is specified, `log_file` will be ignored.
9694
*
9795
* @param array $settings Settings.
9896
*
@@ -108,44 +106,37 @@ public static function init(array $settings = [])
108106
$defaultFlags |= self::USE_HTMLENTITIES;
109107
}
110108

111-
self::$Instance = new static($defaultFlags, self::initLogger($settings));
109+
if (isset($settings['logger']) && $settings['logger'] instanceof Logger) {
110+
$Logger = $settings['logger'];
111+
} else {
112+
if (isset($settings['log_file'])) {
113+
$Stream = self::initStream($settings['log_file']);
114+
} else {
115+
// We didn't get any file to log.
116+
$Stream = new NullHandler(Logger::DEBUG);
117+
}
118+
119+
$Logger = new Logger(self::CHANNEL_NAME);
120+
$Logger->pushHandler($Stream);
121+
}
122+
123+
self::$Instance = new static($defaultFlags, $Logger);
112124
}
113125

114126
/**
115-
* Create Monolog logger.
127+
* Create stream handler for logger.
116128
*
117-
* @param array $settings Settings.
129+
* @param string $logFile The log file.
118130
*
119-
* @return Logger
120-
* @see init()
131+
* @return StreamHandler
121132
*/
122-
private static function initLogger(array $settings = []): Logger
133+
private static function initStream(string $logFile): StreamHandler
123134
{
124-
if (isset($settings['monolog']) && is_array($settings['monolog'])) {
125-
$monologSettings = $settings['monolog'];
126-
} else {
127-
$monologSettings = [];
128-
}
129-
130-
if (isset($settings['log_file'])) {
131-
// Use default values if not specified otherwise.
132-
if (array_key_exists('output_format', $monologSettings)) {
133-
$output = $monologSettings['output_format'];
134-
} else {
135-
$output = self::OUTPUT_FORMAT;
136-
}
137-
$dateFormat = $monologSettings['date_format'] ?? self::DATE_FORMAT;
138-
139-
$Stream = new StreamHandler($settings['log_file'], Logger::DEBUG);
140-
$Stream->setFormatter(new LineFormatter($output, $dateFormat, true));
141-
} else {
142-
// We didn't get any file to log.
143-
$Stream = new NullHandler(Logger::DEBUG);
144-
}
145-
146-
$Logger = new Logger($monologSettings['channel_name'] ?? self::CHANNEL_NAME);
147-
$Logger->pushHandler($Stream);
148-
return $Logger;
135+
$Stream = new StreamHandler($logFile, Logger::DEBUG);
136+
$Stream->setFormatter(
137+
new LineFormatter(self::OUTPUT_FORMAT, self::DATE_FORMAT, true)
138+
);
139+
return $Stream;
149140
}
150141

151142
/**

0 commit comments

Comments
 (0)