예제 #1
0
파일: Logger.php 프로젝트: appcia/webwork
 /**
  * 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;
 }