summaryrefslogtreecommitdiffstats
path: root/library/Director/Daemon/JsonRpcLogWriter.php
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:43:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:43:12 +0000
commitcd989f9c3aff968e19a3aeabc4eb9085787a6673 (patch)
treefbff2135e7013f196b891bbde54618eb050e4aaf /library/Director/Daemon/JsonRpcLogWriter.php
parentInitial commit. (diff)
downloadicingaweb2-module-director-cd989f9c3aff968e19a3aeabc4eb9085787a6673.tar.xz
icingaweb2-module-director-cd989f9c3aff968e19a3aeabc4eb9085787a6673.zip
Adding upstream version 1.10.2.upstream/1.10.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/Director/Daemon/JsonRpcLogWriter.php')
-rw-r--r--library/Director/Daemon/JsonRpcLogWriter.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/library/Director/Daemon/JsonRpcLogWriter.php b/library/Director/Daemon/JsonRpcLogWriter.php
new file mode 100644
index 0000000..edfa23e
--- /dev/null
+++ b/library/Director/Daemon/JsonRpcLogWriter.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Icinga\Module\Director\Daemon;
+
+use gipfl\Protocol\JsonRpc\Connection;
+use gipfl\Protocol\JsonRpc\Notification;
+use Icinga\Application\Logger\LogWriter;
+use Icinga\Data\ConfigObject;
+
+class JsonRpcLogWriter extends LogWriter
+{
+ protected $connection;
+
+ protected static $severityMap = [
+ Logger::DEBUG => 'debug',
+ Logger::INFO => 'info',
+ Logger::WARNING => 'warning',
+ Logger::ERROR => 'error',
+ ];
+
+ public function __construct(Connection $connection)
+ {
+ parent::__construct(new ConfigObject([]));
+ $this->connection = $connection;
+ }
+
+ public function log($severity, $message)
+ {
+ $message = \iconv('UTF-8', 'UTF-8//IGNORE', $message);
+ $this->connection->sendNotification(
+ Notification::create('logger.log', [
+ static::$severityMap[$severity],
+ $message
+ ])
+ );
+ }
+}