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.'); | |
} | |
} | |
} | |