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