/** * Write log message * * @param string $message Message * @param string $level Level * * @return $this * @throws \InvalidArgumentException */ public function write($message, $level) { if (empty($message)) { throw new \InvalidArgumentException(sprintf("Logger write error. Message cannot be empty.")); } if (!in_array($level, self::$levels)) { throw new \InvalidArgumentException(sprintf("Logger write error. Invalid level '%s'", $level)); } $date = new \DateTime('now'); $this->template->set('level', mb_strtoupper($level))->set('message', trim($message))->set('date', $date->format('Y-m-d H:i:s.u')); if ($this->callback !== null && is_callable($this->callback)) { call_user_func($this->callback, $this->template); } $text = $this->template->render(); $this->file->append($text); return $this; }