diff options
Diffstat (limited to 'library/Icinga/Application/Logger/Writer/PhpWriter.php')
-rw-r--r-- | library/Icinga/Application/Logger/Writer/PhpWriter.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/library/Icinga/Application/Logger/Writer/PhpWriter.php b/library/Icinga/Application/Logger/Writer/PhpWriter.php new file mode 100644 index 0000000..dedb2bd --- /dev/null +++ b/library/Icinga/Application/Logger/Writer/PhpWriter.php @@ -0,0 +1,39 @@ +<?php +/* Icinga Web 2 | (c) 2016 Icinga Development Team | GPLv2+ */ + +namespace Icinga\Application\Logger\Writer; + +use Icinga\Application\Logger; +use Icinga\Application\Logger\LogWriter; +use Icinga\Data\ConfigObject; +use Icinga\Exception\NotWritableError; + +/** + * Log to the webserver log, a file or syslog + * + * @see https://secure.php.net/manual/en/errorfunc.configuration.php#ini.error-log + */ +class PhpWriter extends LogWriter +{ + /** + * Prefix to prepend to each message + * + * @var string + */ + protected $ident; + + public function __construct(ConfigObject $config) + { + parent::__construct($config); + $this->ident = $config->get('application', 'icingaweb2'); + } + + public function log($severity, $message) + { + if (ini_get('error_log') === 'syslog') { + $message = str_replace("\n", ' ', $message); + } + + error_log($this->ident . ': ' . Logger::$levels[$severity] . ' - ' . $message); + } +} |