aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/scssphp/scssphp/src/Logger/StreamLogger.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/scssphp/scssphp/src/Logger/StreamLogger.php')
-rw-r--r--vendor/scssphp/scssphp/src/Logger/StreamLogger.php62
1 files changed, 62 insertions, 0 deletions
diff --git a/vendor/scssphp/scssphp/src/Logger/StreamLogger.php b/vendor/scssphp/scssphp/src/Logger/StreamLogger.php
new file mode 100644
index 000000000..7db7cc189
--- /dev/null
+++ b/vendor/scssphp/scssphp/src/Logger/StreamLogger.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * SCSSPHP
+ *
+ * @copyright 2012-2020 Leaf Corcoran
+ *
+ * @license http://opensource.org/licenses/MIT MIT
+ *
+ * @link http://scssphp.github.io/scssphp
+ */
+
+namespace ScssPhp\ScssPhp\Logger;
+
+/**
+ * A logger that prints to a PHP stream (for instance stderr)
+ *
+ * @final
+ */
+class StreamLogger implements LoggerInterface
+{
+ private $stream;
+ private $closeOnDestruct;
+
+ /**
+ * @param resource $stream A stream resource
+ * @param bool $closeOnDestruct If true, takes ownership of the stream and close it on destruct to avoid leaks.
+ */
+ public function __construct($stream, $closeOnDestruct = false)
+ {
+ $this->stream = $stream;
+ $this->closeOnDestruct = $closeOnDestruct;
+ }
+
+ /**
+ * @internal
+ */
+ public function __destruct()
+ {
+ if ($this->closeOnDestruct) {
+ fclose($this->stream);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function warn($message, $deprecation = false)
+ {
+ $prefix = ($deprecation ? 'DEPRECATION ' : '') . 'WARNING: ';
+
+ fwrite($this->stream, $prefix . $message . "\n\n");
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function debug($message)
+ {
+ fwrite($this->stream, $message . "\n");
+ }
+}