56 parent::__construct(
'U.u');
67 public function format(array $record)
69 $record = parent::format($record);
71 if (!isset($record[
'datetime'], $record[
'message'], $record[
'level'])) {
72 throw new \InvalidArgumentException(
'The record should at least contain datetime, message and level keys, '.var_export($record,
true).
' given');
75 $message =
new Message();
77 ->setTimestamp($record[
'datetime'])
78 ->setShortMessage((
string) $record[
'message'])
79 ->setHost($this->systemName)
80 ->setLevel($this->logLevels[$record[
'level']]);
82 if (isset($record[
'channel'])) {
83 $message->setFacility($record[
'channel']);
85 if (isset($record[
'extra'][
'line'])) {
86 $message->setLine($record[
'extra'][
'line']);
87 unset($record[
'extra'][
'line']);
89 if (isset($record[
'extra'][
'file'])) {
90 $message->setFile($record[
'extra'][
'file']);
91 unset($record[
'extra'][
'file']);
94 foreach ($record[
'extra'] as $key => $val) {
95 $message->setAdditional($this->extraPrefix . $key, is_scalar($val) ? $val : $this->
toJson($val));
98 foreach ($record[
'context'] as $key => $val) {
99 $message->setAdditional($this->contextPrefix . $key, is_scalar($val) ? $val : $this->
toJson($val));
102 if (null === $message->getFile() && isset($record[
'context'][
'exception'][
'file'])) {
103 if (preg_match(
"/^(.+):([0-9]+)$/", $record[
'context'][
'exception'][
'file'], $matches)) {
104 $message->setFile($matches[1]);
105 $message->setLine($matches[2]);
const NOTICE
Uncommon events.
const DEBUG
Detailed debug information.
const ERROR
Runtime errors.
const WARNING
Exceptional occurrences that are not errors.
const EMERGENCY
Urgent alert.
const CRITICAL
Critical conditions.
const ALERT
Action must be taken immediately.
const INFO
Interesting events.