/** * @param LoggerLoggingEvent $event * @return string */ public function convert($event) { switch ($this->type) { case LoggerPatternParser::LOG4PHP_LOGGER_PATTERN_PARSER_RELATIVE_TIME_CONVERTER: $timeStamp = $event->getTimeStamp(); $startTime = LoggerLoggingEvent::getStartTime(); return (string) (int) ($timeStamp * 1000 - $startTime * 1000); case LoggerPatternParser::LOG4PHP_LOGGER_PATTERN_PARSER_THREAD_CONVERTER: return $event->getThreadName(); case LoggerPatternParser::LOG4PHP_LOGGER_PATTERN_PARSER_LEVEL_CONVERTER: $level = $event->getLevel(); return $level->toString(); case LoggerPatternParser::LOG4PHP_LOGGER_PATTERN_PARSER_NDC_CONVERTER: return $event->getNDC(); case LoggerPatternParser::LOG4PHP_LOGGER_PATTERN_PARSER_MESSAGE_CONVERTER: return $event->getRenderedMessage(); default: return ''; } }
/** * Converts the logging event into an array which can be logged to mongodb. * * @param LoggerLoggingEvent $event * @return array The array representation of the logging event. */ protected function format(LoggerLoggingEvent $event) { $timestampSec = (int) $event->getTimestamp(); $timestampUsec = (int) (($event->getTimestamp() - $timestampSec) * 1000000); $document = array('timestamp' => new MongoDate($timestampSec, $timestampUsec), 'level' => $event->getLevel()->toString(), 'thread' => (int) $event->getThreadName(), 'message' => $event->getMessage(), 'loggerName' => $event->getLoggerName()); $locationInfo = $event->getLocationInformation(); if ($locationInfo != null) { $document['fileName'] = $locationInfo->getFileName(); $document['method'] = $locationInfo->getMethodName(); $document['lineNumber'] = $locationInfo->getLineNumber() == 'NA' ? 'NA' : (int) $locationInfo->getLineNumber(); $document['className'] = $locationInfo->getClassName(); } $throwableInfo = $event->getThrowableInformation(); if ($throwableInfo != null) { $document['exception'] = $this->formatThrowable($throwableInfo->getThrowable()); } return $document; }
/** * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $sbuf = PHP_EOL . "<tr>" . PHP_EOL; $sbuf .= "<td>"; $sbuf .= $event->getTime(); $sbuf .= "</td>" . PHP_EOL; $sbuf .= "<td title=\"" . $event->getThreadName() . " thread\">"; $sbuf .= $event->getThreadName(); $sbuf .= "</td>" . PHP_EOL; $sbuf .= "<td title=\"Level\">"; $level = $event->getLevel(); if ($level->equals(LoggerLevel::getLevelDebug())) { $sbuf .= "<font color=\"#339933\">{$level}</font>"; } else { if ($level->equals(LoggerLevel::getLevelWarn())) { $sbuf .= "<font color=\"#993300\"><strong>{$level}</strong></font>"; } else { $sbuf .= $level; } } $sbuf .= "</td>" . PHP_EOL; $sbuf .= "<td title=\"" . htmlentities($event->getLoggerName(), ENT_QUOTES) . " category\">"; $sbuf .= htmlentities($event->getLoggerName(), ENT_QUOTES); $sbuf .= "</td>" . PHP_EOL; if ($this->locationInfo) { $locInfo = $event->getLocationInformation(); $sbuf .= "<td>"; $sbuf .= htmlentities($locInfo->getFileName(), ENT_QUOTES) . ':' . $locInfo->getLineNumber(); $sbuf .= "</td>" . PHP_EOL; } $sbuf .= "<td title=\"Message\">"; $sbuf .= htmlentities($event->getRenderedMessage(), ENT_QUOTES); $sbuf .= "</td>" . PHP_EOL; $sbuf .= "</tr>" . PHP_EOL; if ($event->getNDC() != null) { $sbuf .= "<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\" title=\"Nested Diagnostic Context\">"; $sbuf .= "NDC: " . htmlentities($event->getNDC(), ENT_QUOTES); $sbuf .= "</td></tr>" . PHP_EOL; } return $sbuf; }
/** * Formats a {@link LoggerLoggingEvent} in conformance with the log4php.dtd. * * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $ns = $this->namespacePrefix; $loggerName = $event->getLoggerName(); $timeStamp = number_format((double) ($event->getTimeStamp() * 1000), 0, '', ''); $thread = $event->getThreadName(); $level = $event->getLevel()->toString(); $buf = "<{$ns}:event logger=\"{$loggerName}\" level=\"{$level}\" thread=\"{$thread}\" timestamp=\"{$timeStamp}\">" . PHP_EOL; $buf .= "<{$ns}:message>"; $buf .= $this->encodeCDATA($event->getRenderedMessage()); $buf .= "</{$ns}:message>" . PHP_EOL; $ndc = $event->getNDC(); if (!empty($ndc)) { $buf .= "<{$ns}:NDC><![CDATA["; $buf .= $this->encodeCDATA($ndc); $buf .= "]]></{$ns}:NDC>" . PHP_EOL; } $mdcMap = $event->getMDCMap(); if (!empty($mdcMap)) { $buf .= "<{$ns}:properties>" . PHP_EOL; foreach ($mdcMap as $name => $value) { $buf .= "<{$ns}:data name=\"{$name}\" value=\"{$value}\" />" . PHP_EOL; } $buf .= "</{$ns}:properties>" . PHP_EOL; } if ($this->getLocationInfo()) { $locationInfo = $event->getLocationInformation(); $buf .= "<{$ns}:locationInfo " . "class=\"" . $locationInfo->getClassName() . "\" " . "file=\"" . htmlentities($locationInfo->getFileName(), ENT_QUOTES) . "\" " . "line=\"" . $locationInfo->getLineNumber() . "\" " . "method=\"" . $locationInfo->getMethodName() . "\" "; $buf .= "/>" . PHP_EOL; } $buf .= "</{$ns}:event>" . PHP_EOL; return $buf; }
/** * Formats a {@link LoggerLoggingEvent} in conformance with the log4php.dtd. * * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $loggerName = $event->getLoggerName(); $timeStamp = number_format((double) ($event->getTimeStamp() * 1000), 0, '', ''); $thread = $event->getThreadName(); $level = $event->getLevel(); $levelStr = $level->toString(); $buf = "<{$this->_namespacePrefix}:event logger=\"{$loggerName}\" level=\"{$levelStr}\" thread=\"{$thread}\" timestamp=\"{$timeStamp}\">" . PHP_EOL; $buf .= "<{$this->_namespacePrefix}:message><![CDATA["; $this->appendEscapingCDATA($buf, $event->getRenderedMessage()); $buf .= "]]></{$this->_namespacePrefix}:message>" . PHP_EOL; $ndc = $event->getNDC(); if ($ndc != null) { $buf .= "<{$this->_namespacePrefix}:NDC><![CDATA["; $this->appendEscapingCDATA($buf, $ndc); $buf .= "]]></{$this->_namespacePrefix}:NDC>" . PHP_EOL; } if ($this->getLocationInfo()) { $locationInfo = $event->getLocationInformation(); $buf .= "<{$this->_namespacePrefix}:locationInfo " . "class=\"" . $locationInfo->getClassName() . "\" " . "file=\"" . htmlentities($locationInfo->getFileName(), ENT_QUOTES) . "\" " . "line=\"" . $locationInfo->getLineNumber() . "\" " . "method=\"" . $locationInfo->getMethodName() . "\" "; $buf .= "/>" . PHP_EOL; } $buf .= "</{$this->_namespacePrefix}:event>" . PHP_EOL . PHP_EOL; return $buf; }
/** * @param LoggerLoggingEvent $event * @return string */ function format($event) { $sbuf = LOG4PHP_LINE_SEP . "<tr>" . LOG4PHP_LINE_SEP; $sbuf .= "<td>"; $eventTime = (double) $event->getTimeStamp(); $eventStartTime = (double) LoggerLoggingEvent::getStartTime(); $sbuf .= number_format(($eventTime - $eventStartTime) * 1000, 0, '', ''); $sbuf .= "</td>" . LOG4PHP_LINE_SEP; $sbuf .= "<td title=\"" . $event->getThreadName() . " thread\">"; $sbuf .= $event->getThreadName(); $sbuf .= "</td>" . LOG4PHP_LINE_SEP; $sbuf .= "<td title=\"Level\">"; $level = $event->getLevel(); if ($level->equals(LoggerLevel::getLevelDebug())) { $sbuf .= "<font color=\"#339933\">"; $sbuf .= $level->toString(); $sbuf .= "</font>"; } elseif ($level->equals(LoggerLevel::getLevelWarn())) { $sbuf .= "<font color=\"#993300\"><strong>"; $sbuf .= $level->toString(); $sbuf .= "</strong></font>"; } else { $sbuf .= $level->toString(); } $sbuf .= "</td>" . LOG4PHP_LINE_SEP; $sbuf .= "<td title=\"" . htmlentities($event->getLoggerName(), ENT_QUOTES) . " category\">"; $sbuf .= htmlentities($event->getLoggerName(), ENT_QUOTES); $sbuf .= "</td>" . LOG4PHP_LINE_SEP; if ($this->locationInfo) { $locInfo = $event->getLocationInformation(); $sbuf .= "<td>"; $sbuf .= htmlentities($locInfo->getFileName(), ENT_QUOTES) . ':' . $locInfo->getLineNumber(); $sbuf .= "</td>" . LOG4PHP_LINE_SEP; } $sbuf .= "<td title=\"Message\">"; $sbuf .= htmlentities($event->getRenderedMessage(), ENT_QUOTES); $sbuf .= "</td>" . LOG4PHP_LINE_SEP; $sbuf .= "</tr>" . LOG4PHP_LINE_SEP; if ($event->getNDC() != null) { $sbuf .= "<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\" title=\"Nested Diagnostic Context\">"; $sbuf .= "NDC: " . htmlentities($event->getNDC(), ENT_QUOTES); $sbuf .= "</td></tr>" . LOG4PHP_LINE_SEP; } return $sbuf; }