public function testConstructWithTimestamp() { $l = LoggerLevel::getLevelDebug(); $timestamp = microtime(true); $e = new LoggerLoggingEvent('fqcn', 'TestLogger', $l, 'test', $timestamp); self::assertEquals($e->getTimeStamp(), $timestamp); }
public static function getLoggerLevel($level) { switch (strtolower($level)) { case 'trace': $level = LoggerLevel::getLevelTrace(); break; case 'debug': $level = LoggerLevel::getLevelDebug(); break; case 'warn': $level = LoggerLevel::getLevelWarn(); break; case 'error': $level = LoggerLevel::getLevelError(); break; case 'fatal': $level = LoggerLevel::getLevelFatal(); break; case 'info': default: $level = LoggerLevel::getLevelInfo(); break; } return $level; }
public function testDebugLayout() { $event = new LoggerLoggingEvent("LoggerLayoutXml", new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage"); $v = $this->formatEvent($event, $this->pattern); $dt = $this->getEventDateTime($event); $e = "{$dt} DEBUG TEST (LoggerLayoutXml): testmessage in NA at NA" . PHP_EOL; self::assertEquals($e, $v); }
public function testPhp() { $appender = new LoggerAppenderPhp("TEST"); $layout = new LoggerLayoutSimple(); $appender->setLayout($layout); $appender->activateOptions(); $event = new LoggerLoggingEvent("LoggerAppenderPhpTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $appender->append($event); $event = new LoggerLoggingEvent("LoggerAppenderPhpTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $appender->append($event); $event = new LoggerLoggingEvent("LoggerAppenderPhpTest", new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage"); $appender->append($event); }
public function testDecide() { $filter = new LoggerFilterDenyAll(); $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage"); $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $result = $filter->decide($eventError); self::assertEquals($result, LoggerFilter::DENY); $result = $filter->decide($eventDebug); self::assertEquals($result, LoggerFilter::DENY); $result = $filter->decide($eventWarn); self::assertEquals($result, LoggerFilter::DENY); }
public function testDecide() { $filter = new MyFilter(); // activateOptions is empty, but should at least throw no exeception $filter->activateOptions(); $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage"); $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $result = $filter->decide($eventError); self::assertEquals($result, LoggerFilter::NEUTRAL); $result = $filter->decide($eventDebug); self::assertEquals($result, LoggerFilter::NEUTRAL); $result = $filter->decide($eventWarn); self::assertEquals($result, LoggerFilter::NEUTRAL); }
private function setupLogging() { $this->logger = Logger::getLogger('Panopta API'); $this->logger->setLevel($this->logLevel == LOG_INFO ? LoggerLevel::getLevelInfo() : LoggerLevel::getLevelDebug()); $logAppender = new LoggerAppenderDailyFile(); $logAppender->setFile(rtrim(rtrim($this->logPath, "/"), "\\") . DIRECTORY_SEPARATOR . "panopta_api.log"); $logAppender->setAppend(true); $logAppender->setDatePattern("yyyy-MM-dd'.log'"); $logAppender->setThreshold($this->logLevel); $pattern = new LoggerLayoutPattern(); $pattern->setConversionPattern("%date - %logger - %level - %message%newline"); $logAppender->setLayout($pattern); $logAppender->activateOptions(); $this->logger->addAppender($logAppender); }
function append($event) { $level = $event->getLevel(); $message = $event->getRenderedMessage(); if ($level->isGreaterOrEqual(LoggerLevel::getLevelFatal())) { syslog(LOG_ALERT, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) { syslog(LOG_ERR, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) { syslog(LOG_WARNING, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelInfo())) { syslog(LOG_INFO, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelDebug())) { syslog(LOG_DEBUG, $message); } }
public function testDecideAcceptFalse() { $filter = new LoggerFilterLevelRange(); $filter->setAcceptOnMatch("false"); $filter->setLevelMin(LoggerLevel::getLevelWarn()); $filter->setLevelMax(LoggerLevel::getLevelError()); $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelDebug(), "testmessage"); $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $result = $filter->decide($eventError); self::assertEquals($result, LoggerFilter::NEUTRAL); $result = $filter->decide($eventDebug); self::assertEquals($result, LoggerFilter::DENY); $result = $filter->decide($eventWarn); self::assertEquals($result, LoggerFilter::NEUTRAL); }
public function testResetConfiguration() { $root = $this->hierarchy->getRootLogger(); $appender = new LoggerAppenderConsole('A1'); $root->addAppender($appender); $logger = $this->hierarchy->getLogger('test'); self::assertEquals(1, count($this->hierarchy->getCurrentLoggers())); $this->hierarchy->resetConfiguration(); self::assertEquals(LoggerLevel::getLevelDebug(), $root->getLevel()); self::assertEquals(LoggerLevel::getLevelAll(), $this->hierarchy->getThreshold()); self::assertEquals(1, count($this->hierarchy->getCurrentLoggers())); foreach ($this->hierarchy->getCurrentLoggers() as $logger) { self::assertNull($logger->getLevel()); self::assertTrue($logger->getAdditivity()); self::assertEquals(0, count($logger->getAllAppenders()), 0); } }
/** Check default setup. */ public function testDefaultConfig() { Logger::configure(); $actual = Logger::getCurrentLoggers(); $expected = array(); $this->assertSame($expected, $actual); $appenders = Logger::getRootLogger()->getAllAppenders(); $this->assertInternalType('array', $appenders); $this->assertEquals(count($appenders), 1); $names = array_keys($appenders); $this->assertSame('default', $names[0]); $appender = array_shift($appenders); $this->assertInstanceOf('LoggerAppenderEcho', $appender); $this->assertSame('default', $appender->getName()); $layout = $appender->getLayout(); $this->assertInstanceOf('LoggerLayoutTTCC', $layout); $root = Logger::getRootLogger(); $appenders = $root->getAllAppenders(); $this->assertInternalType('array', $appenders); $this->assertEquals(count($appenders), 1); $actual = $root->getLevel(); $expected = LoggerLevel::getLevelDebug(); $this->assertEquals($expected, $actual); }
public function testDecideDeny() { $filter = new LoggerFilterStringMatch(); $filter->setAcceptOnMatch("false"); $filter->setStringToMatch("testmessage"); $eventError = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $eventError2 = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "xyz"); $eventDebug = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $eventDebug2 = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelDebug(), "xyz"); $eventWarn = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $eventWarn2 = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "xyz"); $result = $filter->decide($eventError); self::assertEquals($result, LoggerFilter::DENY); $result = $filter->decide($eventError2); self::assertEquals($result, LoggerFilter::NEUTRAL); $result = $filter->decide($eventDebug); self::assertEquals($result, LoggerFilter::DENY); $result = $filter->decide($eventDebug2); self::assertEquals($result, LoggerFilter::NEUTRAL); $result = $filter->decide($eventWarn); self::assertEquals($result, LoggerFilter::DENY); $result = $filter->decide($eventWarn2); self::assertEquals($result, LoggerFilter::NEUTRAL); }
public function testLevelDebug() { $this->doTestLevel(LoggerLevel::getLevelDebug(), LoggerLevel::DEBUG, 'DEBUG', 7); $this->doTestLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG), LoggerLevel::DEBUG, 'DEBUG', 7); $this->doTestLevel(LoggerLevel::toLevel('DEBUG'), LoggerLevel::DEBUG, 'DEBUG', 7); }
/** * This method must work for the root category as well. * * @param array $props array of properties * @param Logger &$logger * @param string $optionKey * @param string $loggerName * @param string $value * @return Logger */ function &parseCategory($props, &$logger, $optionKey, $loggerName, $value) { LoggerLog::debug("LoggerPropertyConfigurator::parseCategory() " . "Parsing for [{$loggerName}] with value=[{$value}]."); // We must skip over ',' but not white space $st = explode(',', $value); // If value is not in the form ", appender.." or "", then we should set // the level of the loggeregory. if (!(@$value[0] == ',' || empty($value))) { // just to be on the safe side... if (sizeof($st) == 0) { return; } $levelStr = current($st); LoggerLog::debug("LoggerPropertyConfigurator::parseCategory() " . "Level token is [{$levelStr}]."); // If the level value is inherited, set category level value to // null. We also check that the user has not specified inherited for the // root category. if ('INHERITED' == strtoupper($levelStr) || 'NULL' == strtoupper($levelStr)) { if ($loggerName == LOG4PHP_LOGGER_PROPERTY_CONFIGURATOR_INTERNAL_ROOT_NAME) { LoggerLog::warn("LoggerPropertyConfigurator::parseCategory() " . "The root logger cannot be set to null."); } else { $logger->setLevel(null); } } else { $logger->setLevel(LoggerOptionConverter::toLevel($levelStr, LoggerLevel::getLevelDebug())); } } // Begin by removing all existing appenders. $logger->removeAllAppenders(); while ($appenderName = next($st)) { $appenderName = trim($appenderName); if (empty($appenderName)) { continue; } LoggerLog::debug("LoggerPropertyConfigurator::parseCategory() " . "Parsing appender named [{$appenderName}]."); $appender =& $this->parseAppender($props, $appenderName); if ($appender !== null) { $logger->addAppender($appender); } } }
/** Returns an array of all existing levels, sorted ascending by severity. */ public static function getAllLevels() { return array(LoggerLevel::getLevelTrace(), LoggerLevel::getLevelDebug(), LoggerLevel::getLevelInfo(), LoggerLevel::getLevelWarn(), LoggerLevel::getLevelError(), LoggerLevel::getLevelFatal()); }
/** * Reset all values contained in this hierarchy instance to their * default. * * This removes all appenders from all categories, sets * the level of all non-root categories to <i>null</i>, * sets their additivity flag to <i>true</i> and sets the level * of the root logger to {@link LOGGER_LEVEL_DEBUG}. Moreover, * message disabling is set its default "off" value. * * <p>Existing categories are not removed. They are just reset. * * <p>This method should be used sparingly and with care as it will * block all logging until it is completed.</p> */ function resetConfiguration() { $root =& $this->getRootLogger(); $root->setLevel(LoggerLevel::getLevelDebug()); $this->setThreshold(LoggerLevel::getLevelAll()); $this->shutDown(); $loggers =& $this->getCurrentLoggers(); $enumLoggers = sizeof($loggers); for ($i = 0; $i < $enumLoggers; $i++) { $loggers[$i]->setLevel(null); $loggers[$i]->setAdditivity(true); $loggers[$i]->setResourceBundle(null); } $this->rendererMap->clear(); }
/** * Check whether this Logger is enabled for the DEBUG Level. * @return boolean */ public function isDebugEnabled() { return $this->isEnabledFor(LoggerLevel::getLevelDebug()); }
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; } }
/** * Check whether this category is enabled for the DEBUG Level. * @return boolean */ public function isDebugEnabled() { $debugLevel = LoggerLevel::getLevelDebug(); if ($this->repository->isDisabled($debugLevel)) { return false; } return $debugLevel->isGreaterOrEqual($this->getEffectiveLevel()); }
public function append($event) { if ($this->_option == NULL) { $this->_option = LOG_PID | LOG_CONS; } // Attach the process ID to the message, use the facility defined in the .properties-file openlog($this->_ident, $this->_option, $this->_facility); $level = $event->getLevel(); $message = $event->getRenderedMessage(); // 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->_overridePriority) { syslog($this->_priority, $message); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelFatal())) { syslog(LOG_ALERT, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) { syslog(LOG_ERR, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) { syslog(LOG_WARNING, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelInfo())) { syslog(LOG_INFO, $message); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelDebug())) { syslog(LOG_DEBUG, $message); } } closelog(); }
/** * Helper function. * * Converts a logging level. * * Converts the ESAPI logging level (a number) or level defined in the ESAPI * properties file (a string) into the levels used by Apache's log4php. Note * that log4php does not define a TRACE level and so TRACE is simply an * alias of ALL which log4php does define. * * @param int $level The logging level to convert. * * @throws Exception if the supplied level doesn't match a level currently * defined. * * @return int The log4php logging Level equivalent. */ private static function _convertESAPILeveltoLoggerLevel($level) { if (is_string($level)) { switch (strtoupper($level)) { case 'ALL': /* Same as TRACE */ /* Same as TRACE */ case 'TRACE': return LoggerLevel::getLevelAll(); case 'DEBUG': return LoggerLevel::getLevelDebug(); case 'INFO': return LoggerLevel::getLevelInfo(); case 'WARN': return LoggerLevel::getLevelWarn(); case 'ERROR': return LoggerLevel::getLevelError(); case 'FATAL': return LoggerLevel::getLevelFatal(); case 'OFF': return LoggerLevel::getLevelOff(); default: throw new Exception("Invalid logging level Value was: {$level}"); } } else { switch ($level) { case Auditor::ALL: /* Same as TRACE */ /* Same as TRACE */ case Auditor::TRACE: return LoggerLevel::getLevelAll(); case Auditor::DEBUG: return LoggerLevel::getLevelDebug(); case Auditor::INFO: return LoggerLevel::getLevelInfo(); case Auditor::WARNING: return LoggerLevel::getLevelWarn(); case Auditor::ERROR: return LoggerLevel::getLevelError(); case Auditor::FATAL: return LoggerLevel::getLevelFatal(); case Auditor::OFF: return LoggerLevel::getLevelOff(); default: throw new Exception("Invalid logging level Value was: {$level}"); } } }
/** * This method must work for the root category as well. * * @param array $props array of properties * @param Logger $logger * @param string $optionKey * @param string $loggerName * @param string $value * @return Logger */ private function parseCategory($props, Logger $logger, $optionKey, $loggerName, $value) { // We must skip over ',' but not white space $st = explode(',', $value); // If value is not in the form ", appender.." or "", then we should set // the level of the loggeregory. if (!(empty($value) || @$value[0] == ',')) { // just to be on the safe side... if (count($st) == 0) { return; } $levelStr = current($st); // If the level value is inherited, set category level value to // null. We also check that the user has not specified inherited for the // root category. if ('INHERITED' == strtoupper($levelStr) || 'NULL' == strtoupper($levelStr)) { if ($loggerName == self::INTERNAL_ROOT_NAME) { // TODO: throw exception? "The root logger cannot be set to null." } else { $logger->setLevel(null); } } else { $logger->setLevel(LoggerOptionConverter::toLevel($levelStr, LoggerLevel::getLevelDebug())); } } // TODO: removing should be done by the logger, if necessary and wanted // $logger->removeAllAppenders(); while ($appenderName = next($st)) { $appenderName = trim($appenderName); if (empty($appenderName)) { continue; } $appender = $this->parseAppender($props, $appenderName); if ($appender !== null) { $logger->addAppender($appender); } } }
<tr> <td><?php echo round(1000 * $event->getRelativeTime()); ?> </td> <td title="<?php echo $event->getThreadName(); ?> thread"><?php echo $event->getThreadName(); ?> </td> <td title="Level"> <?php $level = $event->getLevel(); if ($level->equals(\LoggerLevel::getLevelDebug())) { ?> <font color="#339933">$level</font> <?php } elseif ($level->equals(\LoggerLevel::getLevelWarn())) { ?> <font color="#993300"><strong><?php echo $level; ?> </strong></font> <?php } else { ?> <?php echo $level; ?>
public function testSetStringThreshold() { $appender = new LoggerAppenderEcho("LoggerAppenderTest"); $layout = new LoggerLayoutSimple(); $appender->setLayout($layout); $warn = LoggerLevel::getLevelWarn(); $appender->setThreshold('WARN'); $a = $appender->getThreshold(); self::assertEquals($warn, $a); $e = LoggerLevel::getLevelFatal(); $appender->setThreshold('FATAL'); $a = $appender->getThreshold(); self::assertEquals($e, $a); $e = LoggerLevel::getLevelError(); $appender->setThreshold('ERROR'); $a = $appender->getThreshold(); self::assertEquals($e, $a); $e = LoggerLevel::getLevelDebug(); $appender->setThreshold('DEBUG'); $a = $appender->getThreshold(); self::assertEquals($e, $a); $e = LoggerLevel::getLevelInfo(); $appender->setThreshold('INFO'); $a = $appender->getThreshold(); self::assertEquals($e, $a); }
/** * @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; }
/** * Convert the string passed as argument to a level. If the * conversion fails, then this method returns a DEBUG Level. * * @param mixed $arg * @param LoggerLevel $default * @static */ function &toLevel($arg, $defaultLevel = null) { if ($defaultLevel === null) { return LoggerLevel::toLevel($arg, LoggerLevel::getLevelDebug()); } else { if (is_int($arg)) { switch ($arg) { case LOG4PHP_LEVEL_ALL_INT: return LoggerLevel::getLevelAll(); case LOG4PHP_LEVEL_DEBUG_INT: return LoggerLevel::getLevelDebug(); case LOG4PHP_LEVEL_INFO_INT: return LoggerLevel::getLevelInfo(); case LOG4PHP_LEVEL_WARN_INT: return LoggerLevel::getLevelWarn(); case LOG4PHP_LEVEL_ERROR_INT: return LoggerLevel::getLevelError(); case LOG4PHP_LEVEL_FATAL_INT: return LoggerLevel::getLevelFatal(); case LOG4PHP_LEVEL_OFF_INT: return LoggerLevel::getLevelOff(); default: return $defaultLevel; } } else { switch (strtoupper($arg)) { case 'ALL': return LoggerLevel::getLevelAll(); case 'DEBUG': return LoggerLevel::getLevelDebug(); case 'INFO': return LoggerLevel::getLevelInfo(); case 'WARN': return LoggerLevel::getLevelWarn(); case 'ERROR': return LoggerLevel::getLevelError(); case 'FATAL': return LoggerLevel::getLevelFatal(); case 'OFF': return LoggerLevel::getLevelOff(); default: return $defaultLevel; } } } }
/** * @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; }
/** * Reset all values contained in this hierarchy instance to their * default. * * This removes all appenders from all categories, sets * the level of all non-root categories to <i>null</i>, * sets their additivity flag to <i>true</i> and sets the level * of the root logger to {@link LOGGER_LEVEL_DEBUG}. Moreover, * message disabling is set its default "off" value. * * <p>Existing categories are not removed. They are just reset. * * <p>This method should be used sparingly and with care as it will * block all logging until it is completed.</p> */ public function resetConfiguration() { $root = $this->getRootLogger(); $root->setLevel(LoggerLevel::getLevelDebug()); $this->setThreshold(LoggerLevel::getLevelAll()); $this->shutDown(); $loggers = $this->getCurrentLoggers(); $enumLoggers = count($loggers); for ($i = 0; $i < $enumLoggers; $i++) { $loggers[$i]->setLevel(null); $loggers[$i]->setAdditivity(true); $loggers[$i]->removeAllAppenders(); } $this->rendererMap->clear(); }
/** * Reset all values contained in this hierarchy instance to their * default. * * This removes all appenders from all loggers, sets * the level of all non-root loggers to <i>null</i>, * sets their additivity flag to <i>true</i> and sets the level * of the root logger to {@link LOGGER_LEVEL_DEBUG}. * * <p>Existing loggers are not removed. They are just reset. * * <p>This method should be used sparingly and with care as it will * block all logging until it is completed.</p> */ public function resetConfiguration() { $root = $this->getRootLogger(); $root->setLevel(LoggerLevel::getLevelDebug()); $this->setThreshold(LoggerLevel::getLevelAll()); $this->shutDown(); foreach ($this->loggers as $logger) { $logger->setLevel(null); $logger->setAdditivity(true); $logger->removeAllAppenders(); } $this->rendererMap->reset(); LoggerAppenderPool::clear(); }
public function testRollover() { $message = uniqid(); $level = LoggerLevel::getLevelDebug(); $file = PHPUNIT_TEMP_DIR . '/lazy-file.%s.log'; $pattern = 'Y-m-d'; // Get some timestamps for events - different date for each $ts1 = mktime(10, 0, 0, 7, 3, 1980); $ts2 = mktime(10, 0, 0, 7, 4, 1980); $ts3 = mktime(10, 0, 0, 7, 5, 1980); $e1 = new LoggerLoggingEvent(__CLASS__, 'test', $level, $message, $ts1); $e2 = new LoggerLoggingEvent(__CLASS__, 'test', $level, $message, $ts2); $e3 = new LoggerLoggingEvent(__CLASS__, 'test', $level, $message, $ts3); // Expected paths $path1 = PHPUNIT_TEMP_DIR . '/lazy-file.1980-07-03.log'; $path2 = PHPUNIT_TEMP_DIR . '/lazy-file.1980-07-04.log'; $path3 = PHPUNIT_TEMP_DIR . '/lazy-file.1980-07-05.log'; @unlink($path1); @unlink($path2); @unlink($path3); $appender = new LoggerAppenderDailyFile(); $appender->setFile($file); $appender->setDatePattern('Y-m-d'); $appender->activateOptions(); $appender->append($e1); $appender->append($e2); $appender->append($e3); $actual1 = file_get_contents($path1); $actual2 = file_get_contents($path2); $actual3 = file_get_contents($path3); $expected1 = "DEBUG - {$message}" . PHP_EOL; $expected2 = "DEBUG - {$message}" . PHP_EOL; $expected3 = "DEBUG - {$message}" . PHP_EOL; self::assertSame($expected1, $actual1); self::assertSame($expected2, $actual2); self::assertSame($expected3, $actual3); }