diff options
Diffstat (limited to 'app/Core/Log/File.php')
-rw-r--r-- | app/Core/Log/File.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/app/Core/Log/File.php b/app/Core/Log/File.php new file mode 100644 index 00000000..19260b3c --- /dev/null +++ b/app/Core/Log/File.php @@ -0,0 +1,48 @@ +<?php + +namespace Kanboard\Core\Log; + +use RuntimeException; + +/** + * File Logger + * + * @package Kanboard\Core\Log + * @author Frédéric Guillot + */ +class File extends Base +{ + /** + * Filename + * + * @access protected + * @var string + */ + protected $filename = ''; + + /** + * Setup logger configuration + * + * @param string $filename Output file + */ + public function __construct($filename) + { + $this->filename = $filename; + } + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + */ + public function log($level, $message, array $context = array()) + { + $line = $this->formatMessage($level, $message, $context); + + if (file_put_contents($this->filename, $line, FILE_APPEND | LOCK_EX) === false) { + throw new RuntimeException('Unable to write to the log file.'); + } + } +} |