public function testLevel() { $converter = new LoggerPatternConverterLevel($this->info); $actual = $converter->convert($this->event); $expected = $this->event->getLevel()->toString(); self::assertEquals($expected, $actual); }
/** * Return the decision of this filter. * * Returns {@link LoggerFilter::NEUTRAL} if the <b><var>LevelToMatch</var></b> * option is not set or if there is not match. Otherwise, if there is a * match, then the returned decision is {@link LoggerFilter::ACCEPT} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>true</i>. The * returned decision is {@link LoggerFilter::DENY} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>false</i>. * * @param LoggerLoggingEvent $event * @return integer */ public function decide(LoggerLoggingEvent $event) { if ($this->levelToMatch === null) { return LoggerFilter::NEUTRAL; } if ($this->levelToMatch->equals($event->getLevel())) { return $this->acceptOnMatch ? LoggerFilter::ACCEPT : LoggerFilter::DENY; } else { return LoggerFilter::NEUTRAL; } }
public function append(LoggerLoggingEvent $event) { $level = $event->getLevel(); if ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) { trigger_error($this->layout->format($event), E_USER_ERROR); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) { trigger_error($this->layout->format($event), E_USER_WARNING); } else { trigger_error($this->layout->format($event), E_USER_NOTICE); } } }
public function append(LoggerLoggingEvent $event) { $log = new StdClass(); $log->time = $event->getTimeStamp(); $log->level = $event->getLevel()->toString(); $log->msg = $event->getMessage(); $log->logger = $event->getLoggerName(); $this->logBuffer[] = $log; $this->emitter->emit('event', array($log)); if (count($this->logBuffer) > $this->logLimit) { array_shift($this->logBuffer); } }
/** * @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 ''; } }
/** * Display coloried messages on console * * @param LoggerLoggingEvent $event * @return string */ public function colorize(LoggerLoggingEvent $event) { $color = null; switch ($event->getLevel()->toString()) { case 'INFO': $color = self::GREEN; break; case 'WARN': $color = self::YELLOW; break; case 'ERROR': $color = self::RED; break; case 'FATAL': $color = self::BLACK . self::BG_RED; break; } $format = $this->layout->format($event); if ($color) { $format = $color . $format . self::NOCOLOR; } return $format; }
/** * @see LoggerAppender::doAppend() * @param LoggerLoggingEvent $event */ public function doAppend($event) { LoggerLog::debug("LoggerAppenderSkeleton::doAppend()"); if ($this->closed) { LoggerLog::debug("LoggerAppenderSkeleton::doAppend() Attempted to append to closed appender named [{$this->name}]."); return; } if (!$this->isAsSevereAsThreshold($event->getLevel())) { LoggerLog::debug("LoggerAppenderSkeleton::doAppend() event level is less severe than threshold."); return; } $f = $this->getFirstFilter(); while ($f !== null) { switch ($f->decide($event)) { case LOG4PHP_LOGGER_FILTER_DENY: return; case LOG4PHP_LOGGER_FILTER_ACCEPT: return $this->append($event); case LOG4PHP_LOGGER_FILTER_NEUTRAL: $f = $f->getNext(); } } $this->append($event); }
/** * Returns the log statement in a format consisting of the * <b>level</b>, followed by " - " and then the * <b>message</b>. For example, * <samp> INFO - "A message" </samp> * * @param LoggerLoggingEvent $event * @return string */ function format($event) { $level = $event->getLevel(); return $level->toString() . ' - ' . $event->getRenderedMessage() . LOG4PHP_LINE_SEP; }
function append(LoggerLoggingEvent $event) { if ($this->canAppend) { try { // Reopen new mysql connection (need for php threads) $this->activateOptions(); if ($event->message instanceof FarmLogMessage) { $severity = $this->SeverityToInt($event->getLevel()->toString()); $message = $event->message->Message; $tm = date('YmdH'); $hash = md5(":{$message}:{$event->message->FarmID}:{$event->getLoggerName()}:{$tm}", true); $query = "INSERT DELAYED INTO logentries SET\n `id` = ?,\n `serverid`\t= '',\n `message`\t= ?,\n `severity`\t= ?,\n `time`\t\t= ?,\n `source` \t= ?,\n `farmid` \t= ?\n ON DUPLICATE KEY UPDATE cnt = cnt + 1, `time` = ?\n "; $this->db->Execute($query, array($hash, $message, $severity, time(), $event->getLoggerName(), $event->message->FarmID, time())); $event->message = "[FarmID: {$event->message->FarmID}] {$event->message->Message}"; return; } elseif ($event->message instanceof ScriptingLogMessage) { $message = $this->db->qstr($event->message->Message); $query = "INSERT DELAYED INTO scripting_log SET\n `farmid` \t\t= ?,\n `event`\t\t = ?,\n `server_id` \t= ?,\n `dtadded`\t\t= NOW(),\n `message`\t\t= ?\n "; $this->db->Execute($query, array($event->message->FarmID, $event->message->EventName, $event->message->ServerID, $message)); $event->message = "[Farm: {$event->message->FarmID}] {$event->message->Message}"; return; } else { if (stristr($event->message, "AWS was not able to validate the provided access credentials") || stristr($event->message, "The X509 Certificate you provided does not exist in our records")) { return; } } $level = $event->getLevel()->toString(); // Redeclare threadName $event->threadName = TRANSACTION_ID; $event->subThreadName = defined("SUB_TRANSACTIONID") ? SUB_TRANSACTIONID : (isset($GLOBALS["SUB_TRANSACTIONID"]) ? $GLOBALS["SUB_TRANSACTIONID"] : TRANSACTION_ID); $event->farmID = defined("LOGGER_FARMID") ? LOGGER_FARMID : (isset($GLOBALS["LOGGER_FARMID"]) ? $GLOBALS["LOGGER_FARMID"] : null); if (defined('TRANSACTION_ID')) { if ($level == "FATAL" || $level == "ERROR") { // Set meta information $this->db->Execute("\n INSERT DELAYED INTO syslog_metadata\n SET transactionid='" . TRANSACTION_ID . "', errors='1', warnings='0'\n ON DUPLICATE KEY UPDATE errors=errors+1\n "); } else { if ($level == "WARN") { // Set meta information $this->db->Execute("\n INSERT DELAYED INTO syslog_metadata\n SET transactionid='" . TRANSACTION_ID . "', errors='0', warnings='1'\n ON DUPLICATE KEY UPDATE warnings=warnings+1\n "); } } } $msg = $event->message; $event->message = $this->db->qstr($event->message); $query = $this->layout->format($event); $this->db->Execute($query); $event->message = $msg; } catch (Exception $e) { } } }
/** * Display coloried messages on console * * @param LoggerLoggingEvent $event * @return string */ public function colorize(LoggerLoggingEvent $event) { return $this->chooseColor($event->getLevel()->toString(), $this->layout->format($event)); }
/** * 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; }
/** * Return the decision of this filter. * * @param LoggerLoggingEvent $event * @return integer */ public function decide(LoggerLoggingEvent $event) { $level = $event->getLevel(); if ($this->levelMin !== null) { if ($level->isGreaterOrEqual($this->levelMin) == false) { // level of event is less than minimum return LoggerFilter::DENY; } } if ($this->levelMax !== null) { if ($level->toInt() > $this->levelMax->toInt()) { // level of event is greater than maximum // Alas, there is no Level.isGreater method. and using // a combo of isGreaterOrEqual && !Equal seems worse than // checking the int values of the level objects.. return LoggerFilter::DENY; } } if ($this->acceptOnMatch) { // this filter set up to bypass later filters and always return // accept if level in range return LoggerFilter::ACCEPT; } else { // event is ok for this filter; allow later filters to have a look.. return LoggerFilter::NEUTRAL; } }
/** * @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; }
/** * Logs an already prepared logging event object. * @param LoggerLoggingEvent $event */ public function logEvent(LoggerLoggingEvent $event) { if ($this->isEnabledFor($event->getLevel())) { $this->callAppenders($event); } // Forward the event upstream if additivity is turned on if (isset($this->parent) && $this->getAdditivity()) { $this->parent->logEvent($event); } }
/** * Returns the log statement in a format consisting of the * <b>level</b>, followed by " - " and then the * <b>message</b>. For example, * <samp> INFO - "A message" </samp> * * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $level = $event->getLevel(); return $level->toString() . ' - ' . $event->getRenderedMessage() . PHP_EOL; }
/** * Return the decision of this filter. * * Returns {@link LOG4PHP_LOGGER_FILTER_NEUTRAL} if the <b><var>LevelToMatch</var></b> * option is not set or if there is not match. Otherwise, if there is a * match, then the returned decision is {@link LOG4PHP_LOGGER_FILTER_ACCEPT} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>true</i>. The * returned decision is {@link LOG4PHP_LOGGER_FILTER_DENY} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>false</i>. * * @param LoggerLoggingEvent $event * @return integer */ function decide($event) { if ($this->levelToMatch === null) { return LOG4PHP_LOGGER_FILTER_NEUTRAL; } if ($this->levelToMatch->equals($event->getLevel())) { return $this->getAcceptOnMatch() ? LOG4PHP_LOGGER_FILTER_ACCEPT : LOG4PHP_LOGGER_FILTER_DENY; } else { return LOG4PHP_LOGGER_FILTER_NEUTRAL; } }
public function append(\LoggerLoggingEvent $event) { self::addError(strtolower($event->getLevel()->toString()), $event->getMessage()); }
function append(LoggerLoggingEvent $event) { if ($this->canAppend) { try { // Reopen new mysql connection (need for php threads) $this->activateOptions(); if ($event->message instanceof FarmLogMessage) { $severity = $this->SeverityToInt($event->getLevel()->toString()); $message = $this->db->qstr($event->message->Message); $query = "INSERT DELAYED INTO logentries SET \r\n\t \t\t\tserverid\t= '', \r\n\t \t\t\tmessage\t\t= {$message},\r\n\t \t\t\tseverity\t= '{$severity}',\r\n\t \t\t\ttime\t\t= '" . time() . "',\r\n\t \t\t\tsource \t\t= '" . $event->getLoggerName() . "',\r\n\t \t\t\tfarmid \t\t= '{$event->message->FarmID}' \r\n\t \t\t"; $this->db->Execute($query); $event->message = "[FarmID: {$event->message->FarmID}] {$event->message->Message}"; return; } elseif ($event->message instanceof ScriptingLogMessage) { $message = $this->db->qstr($event->message->Message); $query = "INSERT DELAYED INTO scripting_log SET \r\n\t \t\t\tfarmid \t\t= '{$event->message->FarmID}',\r\n\t \t\t\tevent\t\t= '{$event->message->EventName}',\r\n\t \t\t\tserver_id\t= '{$event->message->ServerID}',\r\n\t \t\t\tdtadded\t\t= NOW(),\r\n\t \t\t\tmessage\t\t= {$message}\r\n\t \t\t"; $this->db->Execute($query); $event->message = "[Farm: {$event->message->FarmID}] {$event->message->Message}"; return; } else { if (stristr($event->message, "AWS was not able to validate the provided access credentials") || stristr($event->message, "The X509 Certificate you provided does not exist in our records")) { return; } } $level = $event->getLevel()->toString(); // Redeclare threadName $event->threadName = TRANSACTION_ID; $event->subThreadName = defined("SUB_TRANSACTIONID") ? SUB_TRANSACTIONID : $GLOBALS["SUB_TRANSACTIONID"] ? $GLOBALS["SUB_TRANSACTIONID"] : TRANSACTION_ID; $event->farmID = defined("LOGGER_FARMID") ? LOGGER_FARMID : $GLOBALS["LOGGER_FARMID"] ? $GLOBALS["LOGGER_FARMID"] : null; if (defined('TRANSACTION_ID')) { if ($level == "FATAL" || $level == "ERROR") { // Set meta information $this->db->Execute("INSERT DELAYED INTO syslog_metadata SET transactionid='" . TRANSACTION_ID . "', errors='1', warnings='0'\r\n\t\t \t\t\tON DUPLICATE KEY UPDATE errors=errors+1\r\n\t\t \t\t"); } else { if ($level == "WARN") { // Set meta information $this->db->Execute("INSERT DELAYED INTO syslog_metadata SET transactionid='" . TRANSACTION_ID . "', errors='0', warnings='1'\r\n\t\t\t \t\t\tON DUPLICATE KEY UPDATE warnings=warnings+1\r\n\t\t\t \t\t"); } } } $msg = $event->message; $event->message = $this->db->qstr($event->message); $query = $this->layout->format($event); $this->db->Execute($query); $event->message = $msg; } catch (Exception $e) { } } }
/** * @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; }
/** * Returns the log statement in a format consisting of the * <b>level</b>, followed by " - " and then the * <b>message</b>. For example, * <samp> INFO - "A message" </samp> * * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $level = $event->getLevel(); $message = $event->getRenderedMessage(); return "{$level} - {$message}" . PHP_EOL; }
/** * Appends the event to syslog. * * Log is opened and closed each time because if it is not closed, it * can cause the Apache httpd server to log to whatever ident/facility * was used in openlog(). * * @see http://www.php.net/manual/en/function.syslog.php#97843 */ public function append(LoggerLoggingEvent $event) { $priority = $this->getSyslogPriority($event->getLevel()); $message = $this->layout->format($event); openlog($this->ident, $this->intOption, $this->intFacility); syslog($priority, $message); closelog(); }
/** * Performs threshold checks and invokes filters before delegating logging * to the subclass' specific <i>append()</i> method. * @see LoggerAppender::append() * @param LoggerLoggingEvent $event */ public function doAppend(LoggerLoggingEvent $event) { if ($this->closed) { return; } if (!$this->isAsSevereAsThreshold($event->getLevel())) { return; } $f = $this->getFirstFilter(); while ($f !== null) { switch ($f->decide($event)) { case LoggerFilter::DENY: return; case LoggerFilter::ACCEPT: return $this->append($event); case LoggerFilter::NEUTRAL: $f = $f->getNext(); } } $this->append($event); }
public function append(LoggerLoggingEvent $event) { if ($this->_option == NULL) { $this->_option = LOG_PID | LOG_CONS; } $level = $event->getLevel(); if ($this->layout === null) { $message = $event->getRenderedMessage(); } else { $message = $this->layout->format($event); } // If the priority of a syslog message can be overridden by a value defined in the properties-file, // use that value, else use the one that is defined in the code. if (!$this->dry) { // Attach the process ID to the message, use the facility defined in the .properties-file openlog($this->_ident, $this->_option, $this->_facility); if ($this->_overridePriority) { syslog($this->_priority, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelFatal())) { syslog(LOG_ALERT, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) { syslog(LOG_ERR, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) { syslog(LOG_WARNING, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelInfo())) { syslog(LOG_INFO, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelDebug())) { syslog(LOG_DEBUG, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelTrace())) { syslog(LOG_DEBUG, $message); // No trace level in syslog } } } } } } } closelog(); } else { echo "DRY MODE OF SYSLOG APPENDER: " . $message; } }
public function convert(LoggerLoggingEvent $event) { return $event->getLevel()->toString(); }
/** * In addition to the level of the statement and message, the * returned string includes time, thread, category. * <p>Time, thread, category are printed depending on options. * * @param LoggerLoggingEvent $event * @return string */ public function format(LoggerLoggingEvent $event) { $timeStamp = (double) $event->getTimeStamp(); $format = strftime($this->dateFormat, (int) $timeStamp); if ($this->microSecondsPrinting) { $usecs = floor(($timeStamp - (int) $timeStamp) * 1000); $format .= sprintf(',%03d', $usecs); } $format .= ' '; if ($this->threadPrinting) { $format .= '[' . getmypid() . '] '; } $level = $event->getLevel(); $format .= $level . ' '; if ($this->categoryPrefixing) { $format .= $event->getLoggerName() . ' '; } if ($this->contextPrinting) { $ndc = $event->getNDC(); if ($ndc != null) { $format .= $ndc . ' '; } } $format .= '- ' . $event->getRenderedMessage(); $format .= PHP_EOL; return $format; }
/** * 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; }
function append(LoggerLoggingEvent $event) { if ($this->canAppend) { try { // Reopen new mysql connection (need for php threads) $this->activateOptions(); if ($event->message instanceof FarmLogMessage) { $severity = $this->SeverityToInt($event->getLevel()->toString()); $message = $event->message->Message; $tm = date('YmdH'); $hash = md5(":{$message}:{$event->message->FarmID}:{$event->getLoggerName()}:{$tm}", true); $serverId = $event->message->ServerID; $query = "INSERT DELAYED INTO logentries SET\n `id` = ?,\n `serverid`\t= ?,\n `message`\t= ?,\n `severity`\t= ?,\n `time`\t\t= ?,\n `source` \t= ?,\n `farmid` \t= ?\n ON DUPLICATE KEY UPDATE cnt = cnt + 1, `time` = ?\n "; $this->db->Execute($query, array($hash, $serverId, $message, $severity, time(), $event->getLoggerName(), $event->message->FarmID, time())); $event->message = "[FarmID: {$event->message->FarmID}] {$event->message->Message}"; return; } else { // No longer log stuff in syslog table return; } } catch (Exception $e) { } } }