[icinga-checkins] icinga.org: icingaweb2/feature/setup-wizard-7163: Logger\StdoutWriter: initial implementation

git at icinga.org git at icinga.org
Wed Nov 12 12:11:34 CET 2014


Module: icingaweb2
Branch: feature/setup-wizard-7163
Commit: f347a7498219aa00ebcf87e78e50b114367a2dac
URL:    https://git.icinga.org/?p=icingaweb2.git;a=commit;h=f347a7498219aa00ebcf87e78e50b114367a2dac

Author: Thomas Gelf <thomas at gelf.net>
Date:   Tue Nov 11 19:40:59 2014 +0100

Logger\StdoutWriter: initial implementation

This log writer writes to STDOUT and uses ANSI colors on real terminals

fixes #7636

---

 .../Application/Logger/Writer/StdoutWriter.php     |   50 ++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/library/Icinga/Application/Logger/Writer/StdoutWriter.php b/library/Icinga/Application/Logger/Writer/StdoutWriter.php
new file mode 100644
index 0000000..1fe929d
--- /dev/null
+++ b/library/Icinga/Application/Logger/Writer/StdoutWriter.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Icinga\Application\Logger\Writer;
+
+use Icinga\Cli\Screen;
+use Icinga\Application\Logger\Logger;
+use Icinga\Application\Logger\LogWriter;
+use Zend_Config;
+
+/**
+ * Class to write log messages to STDOUT
+ */
+class StdoutWriter extends LogWriter
+{
+    protected $screen;
+
+    protected function screen()
+    {
+        if ($this->screen === null) {
+            $this->screen = Screen::instance();
+        }
+        return $this->screen;
+    }
+
+    /**
+     * Log a message with the given severity
+     *
+     * @param   int     $severity   The severity to use
+     * @param   string  $message    The message to log
+     */
+    public function log($severity, $message)
+    {
+        $color = 'black';
+        switch ($severity) {
+            case Logger::$ERROR:
+                $color = 'red';
+                break;
+            case Logger::$WARNING:
+                $color = 'orange';
+                break;
+            case Logger::$INFO:
+                $color = 'green';
+                break;
+            case Logger::$DEBUG:
+                $color = 'blue';
+                break;
+        }
+        file_put_contents('php://stderr', $this->screen()->colorize($message, $color) . "\n");
+    }
+}



More information about the icinga-checkins mailing list