/** * {@inheritdoc} */ protected function send(Event $event) : bool { if (!is_resource($this->resource)) { $this->resource = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); } $message = $event->format(false); $udpMessage = '<' . ($this->facility + $this->convertType($event->getLevel())) . '>' . $event->getDate()->format('M d H:i:s') . ' ' . ($this->hostname ? $this->hostname . ' ' : '') . $this->name . ($this->pid ? '[' . $this->pid . ']' : '') . ': ' . $message . ""; if (strlen($udpMessage) > self::DATAGRAM_MAX_LENGTH) { $udpMessage = substr($udpMessage, 0, self::DATAGRAM_MAX_LENGTH); } $length = strlen($udpMessage); $size = socket_sendto($this->resource, $udpMessage, $length, $flags = 0, $this->ip, $this->port); return $size == $length; }
/** * @param \Cawa\Log\Event $event */ public function onLogEvent(Event $event) { $message = $event->getMessage(); if ($event->getContext()) { $isAssociative = array_keys($event->getContext()) !== range(0, count($event->getContext()) - 1); if ($isAssociative) { $message .= ' [' . implode('] [', array_map(function ($v, $k) { return sprintf('%s: %s', ucfirst(strtolower($k)), is_array($v) ? json_encode($v) : $v); }, $event->getContext(), array_keys($event->getContext()))) . ']'; } else { $message .= ' [Context: ' . json_encode($event->getContext()) . ']'; } } $this->data['log'][] = ['time' => $event->getDate()->format('U.u'), 'level' => $event->getLevel(), 'message' => $message]; }