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);
 }
Beispiel #13
0
 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());
 }
Beispiel #16
0
 /**
  * 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();
 }
Beispiel #17
0
 /**
  * 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;
     }
 }
Beispiel #19
0
 /**
  * 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();
 }
Beispiel #21
0
 /**
  * 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);
         }
     }
 }
Beispiel #23
0
<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;
             }
         }
     }
 }
Beispiel #27
0
 /**
  * @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();
 }
Beispiel #29
0
 /**
  * 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);
 }