Skip to content
Snippets Groups Projects
Commit 7df4c960 authored by Hoop, Bert Jan de's avatar Hoop, Bert Jan de
Browse files

L05DOCBST-38 add init method to LoggerTrait

parent 1711cc18
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,48 @@ trait LoggerTrait {
*/
protected $ndc_context = [];
/**
* initialize logger
*
* @param array $settings with (optional) keys: name, path, level and format
* @param string $base_dir base direcory for relative paths
* @return $this
*/
public function init_logger(array $settings, string $base_dir = ".") {
$name = isset($settings["name"]) ? $settings["name"] : "default";
$path = isset($settings["path"]) ? $settings["path"] : "php://stderr";
// adjust log path if it is not a php i/o stream or absolute path
// so only adjust relative paths
if (strncmp($path, 'php:', 4) != 0 && strncmp($path, '/', 1)) {
$path = "$base_dir/$path";
}
$level = isset($settings["level"]) ? $settings["level"] : "info";
$format = isset($settings["format"]) ? $settings["format"] : "[%datetime%] %channel% %level_name% %extra% %context%: %message%";
// create the logger
$logger = new \Monolog\Logger($name);
// add stream handler
$stream = new \Monolog\Handler\StreamHandler($path, $level);
$formatter = new \Monolog\Formatter\LineFormatter("$format\n");
$stream->setFormatter($formatter);
$logger->pushHandler($stream);
return $this->set_logger($logger);
}
/**
* get logger instance
* @return \Psr\Log\LoggerInterface or null if not set
*/
public function get_logger() {
return $this->logger;
}
/**
* set logger to send log messages to
* @param \Psr\Log\LoggerInterface $logger
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment