public function testThreshold()
 {
     Logger::configure('configurators/test1.xml');
     $root = Logger::getRootLogger();
     self::assertEquals(LoggerLevel::getLevelWarn(), $root->getLevel());
     $appender = $root->getAppender("default");
     self::assertTrue($appender instanceof LoggerAppenderEcho);
     $layout = $appender->getLayout();
     self::assertTrue($layout instanceof LoggerLayoutSimple);
     $threshold = $appender->getThreshold();
     self::assertTrue($threshold instanceof LoggerLevel);
     $e = LoggerLevel::getLevelWarn();
     self::assertEquals($e, $threshold);
     $appender = $root->getAppender("blub");
     self::assertTrue($appender instanceof LoggerAppenderEcho);
     $layout = $appender->getLayout();
     self::assertTrue($layout instanceof LoggerLayoutSimple);
     $threshold = $appender->getThreshold();
     self::assertTrue($threshold instanceof LoggerLevel);
     $e = LoggerLevel::getLevelInfo();
     self::assertEquals($e, $threshold);
     $filter = $appender->getFilter();
     self::assertTrue($filter instanceof LoggerFilterLevelRange);
     $filter2 = $filter->getNext();
     self::assertTrue($filter2 instanceof LoggerFilterDenyAll);
     $threshold = Logger::getHierarchy()->getThreshold();
     self::assertTrue($threshold instanceof LoggerLevel);
     $e = LoggerLevel::getLevelWarn();
     self::assertEquals($e, $threshold);
     $hierarchy = Logger::getHierarchy();
     $map = $hierarchy->getRendererMap();
     $clazz = $map->getByClassName('Fruit2');
     self::assertTrue($clazz instanceof FruitRenderer2);
 }
Ejemplo n.º 2
0
 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 testInfoLayout()
 {
     $event = new LoggerLoggingEvent("LoggerLayoutXml", new Logger("TEST"), LoggerLevel::getLevelInfo(), "testmessage");
     $v = $this->formatEvent($event, $this->pattern);
     $dt = $this->getEventDateTime($event);
     $e = "{$dt} INFO  TEST (LoggerLayoutXml): testmessage in NA at NA" . PHP_EOL;
     self::assertEquals($e, $v);
 }
 /**
  * The Null appender does nothing - nothing to assert.
  * Just here for the sake of completness and a good testing ratio :-)
  */
 public function testActivateOptions()
 {
     $event = new LoggerLoggingEvent("LoggerAppenderNullTest", new Logger("TEST"), LoggerLevel::getLevelInfo(), "testmessage");
     $appender = new LoggerAppenderNull("TEST");
     $appender->activateOptions();
     $appender->append($event);
     $appender->close();
 }
 public function testConfigure()
 {
     Logger::configure('configurators/test1.php', 'LoggerConfiguratorPhp');
     $root = Logger::getRootLogger();
     self::assertEquals(LoggerLevel::getLevelWarn(), $root->getLevel());
     $appender = $root->getAppender("default");
     self::assertTrue($appender instanceof LoggerAppenderEcho);
     $layout = $appender->getLayout();
     self::assertTrue($layout instanceof LoggerLayoutSimple);
     $logger = Logger::getLogger('mylogger');
     self::assertEquals(LoggerLevel::getLevelInfo(), $logger->getLevel());
 }
 public function testLayoutWithLocationInfo()
 {
     Logger::configure(array('appenders' => array('default' => array('class' => 'LoggerAppenderEcho', 'layout' => array('class' => 'LoggerLayoutSerialized', 'params' => array('locationInfo' => true)))), 'rootLogger' => array('appenders' => array('default'))));
     ob_start();
     $foo = Logger::getLogger('foo');
     $foo->info("Interesting message.");
     $actual = ob_get_contents();
     ob_end_clean();
     $event = unserialize($actual);
     self::assertInstanceOf('LoggerLoggingEvent', $event);
     self::assertEquals('Interesting message.', $event->getMessage());
     self::assertEquals(LoggerLevel::getLevelInfo(), $event->getLevel());
 }
Ejemplo n.º 7
0
 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);
 }
Ejemplo n.º 8
0
 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);
     }
 }
Ejemplo n.º 9
0
 public function validateAll($values, $logLevel = null)
 {
     //No hay parámetros obligatorios
     $validated = array();
     foreach ($this->comparer as $key => $function) {
         if (key_exists($key, $values)) {
             $value = $values[$key];
         } else {
             $value = null;
         }
         if (call_user_func($function, $value)) {
             $validated[$key] = $value;
         } else {
             global $log;
             if ($logLevel == null) {
                 $logLevel = \LoggerLevel::getLevelInfo();
             }
             $error = "El valor '{$value}' no es válido para la key '{$key}'";
             $log->log($logLevel, $error);
             $validated[$key] = new Debug($error, array('clave' => $key, 'valor' => $value, 'comprobacion' => is_array($function) ? array_pop($function) : $function));
         }
     }
     return $validated;
 }
 public function testThreshold()
 {
     Logger::configure('configurators/test4.properties');
     $root = Logger::getRootLogger();
     self::assertEquals(LoggerLevel::getLevelWarn(), $root->getLevel());
     $appender = $root->getAppender("default");
     self::assertTrue($appender instanceof LoggerAppenderEcho);
     $layout = $appender->getLayout();
     self::assertTrue($layout instanceof LoggerLayoutSimple);
     $threshold = $appender->getThreshold();
     self::assertTrue($threshold instanceof LoggerLevel);
     $e = LoggerLevel::getLevelWarn();
     self::assertEquals($e, $threshold);
     $appender = $root->getAppender("blub");
     self::assertTrue($appender instanceof LoggerAppenderEcho);
     $layout = $appender->getLayout();
     self::assertTrue($layout instanceof LoggerLayoutSimple);
     $threshold = $appender->getThreshold();
     self::assertTrue($threshold instanceof LoggerLevel);
     $e = LoggerLevel::getLevelInfo();
     self::assertEquals($e, $threshold);
     $threshold = Logger::getHierarchy()->getThreshold();
     self::assertTrue($threshold instanceof LoggerLevel);
     $e = LoggerLevel::getLevelWarn();
     self::assertEquals($e, $threshold);
 }
Ejemplo n.º 11
0
 /**
  * Check whether this Logger is enabled for the INFO Level.
  * @return boolean
  */
 public function isInfoEnabled()
 {
     return $this->isEnabledFor(LoggerLevel::getLevelInfo());
 }
Ejemplo n.º 12
0
 /**
  * Check whether this category is enabled for the info Level.
  * @return boolean
  * @see LoggerLevel
  */
 public function isInfoEnabled()
 {
     $infoLevel = LoggerLevel::getLevelInfo();
     if ($this->repository->isDisabled($infoLevel)) {
         return false;
     }
     return $infoLevel->isGreaterOrEqual($this->getEffectiveLevel());
 }
Ejemplo n.º 13
0
 /**
  * @return array[]
  */
 public function dataLog()
 {
     return array('emergency' => array('emergency', \LoggerLevel::getLevelFatal()), 'alert' => array('alert', \LoggerLevel::getLevelFatal()), 'critical' => array('critical', \LoggerLevel::getLevelFatal()), 'error' => array('error', \LoggerLevel::getLevelError()), 'warning' => array('warning', \LoggerLevel::getLevelWarn()), 'notice' => array('notice', \LoggerLevel::getLevelWarn()), 'info' => array('info', \LoggerLevel::getLevelInfo()), 'debug' => array('debug', \LoggerLevel::getLevelDebug()));
 }
 public function testAppenderThreshold()
 {
     Logger::configure(array('rootLogger' => array('appenders' => array('default')), 'appenders' => array('default' => array('class' => 'LoggerAppenderEcho', 'threshold' => 'INFO'))));
     $actual = Logger::getRootLogger()->getAppender('default')->getThreshold();
     $expected = LoggerLevel::getLevelInfo();
     self::assertSame($expected, $actual);
 }
Ejemplo n.º 15
0
 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;
     }
 }
Ejemplo n.º 16
0
 /**
  * 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;
             }
         }
     }
 }
Ejemplo n.º 17
0
 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);
 }
Ejemplo n.º 18
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}");
         }
     }
 }
Ejemplo n.º 19
0
 /**
  * Adds an entry to the log.
  *
  * Adds an entry to the log with Linux style log format.
  * Possible $level constants (can also be combined with "|"s)
  * SMARTIRC_DEBUG_NONE
  * SMARTIRC_DEBUG_NOTICE
  * SMARTIRC_DEBUG_CONNECTION
  * SMARTIRC_DEBUG_SOCKET
  * SMARTIRC_DEBUG_IRCMESSAGES
  * SMARTIRC_DEBUG_MESSAGETYPES
  * SMARTIRC_DEBUG_ACTIONHANDLER
  * SMARTIRC_DEBUG_TIMEHANDLER
  * SMARTIRC_DEBUG_MESSAGEHANDLER
  * SMARTIRC_DEBUG_CHANNELSYNCING
  * SMARTIRC_DEBUG_MODULES
  * SMARTIRC_DEBUG_USERSYNCING
  * SMARTIRC_DEBUG_ALL
  *
  * @see SMARTIRC_DEBUG_NOTICE
  * @param integer $level bit constants (SMARTIRC_DEBUG_*)
  * @param string $entry the new log entry
  * @return void
  * @access public
  */
 function log($level, $entry, $file = null, $line = null)
 {
     // prechecks
     if (!is_integer($level) || !($level & SMARTIRC_DEBUG_ALL)) {
         $this->log(SMARTIRC_DEBUG_NOTICE, 'WARNING: invalid log level passed to log() (' . $level . ')', __FILE__, __LINE__);
         return;
     }
     if ($level & SMARTIRC_DEBUG_NOTICE) {
         $logLevel = LoggerLevel::getLevelInfo();
     } else {
         $logLevel = LoggerLevel::getLevelDebug();
     }
     $this->logger->log($logLevel, $entry);
 }
Ejemplo n.º 20
0
 /** 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());
 }
Ejemplo n.º 21
0
 /**
  * returns the rendered Smarty template
  * (usefull for ajax)
  *
  * @param string $template the template to be displayed
  * @return string containing HTML code
  */
 public function fetch($template)
 {
     $renderedHtml = 'error';
     if (!headers_sent()) {
         header("Content-type: text/html; charset=UTF-8");
     } else {
         self::$logger->error("Headers already sent");
     }
     if (Tools::endsWith($template, '.html')) {
         $renderedHtml = $this->smarty->fetch($template);
     } else {
         $renderedHtml = $this->smarty->fetch($template . '.html');
     }
     if (self::$logger->isEnabledFor(LoggerLevel::getLevelInfo())) {
         $generatedTime = round(microtime(true) - $this->smarty->start_time, 3);
         $peakMemAlloc = Tools::bytesToSize1024(memory_get_peak_usage(true));
         $memUsage = Tools::bytesToSize1024(memory_get_usage(true));
         self::$logger->info('PERF: ' . $generatedTime . 'sec | Mem ' . $memUsage . ' | Peak ' . $peakMemAlloc . ' --- ' . $_SERVER['PHP_SELF'] . ' --- ');
     }
     SqlWrapper::getInstance()->logStats();
     /*
           IssueCache::getInstance()->logStats();
           ProjectCache::getInstance()->logStats();
           UserCache::getInstance()->logStats();
           TimeTrackCache::getInstance()->logStats();
     */
     return $renderedHtml;
 }
Ejemplo n.º 22
0
 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();
 }
 public function testPriorityOverride()
 {
     if (!method_exists('ReflectionProperty', 'setAccessible')) {
         $this->markTestSkipped("ReflectionProperty::setAccessible() required to perform this test (available in PHP 5.3.2+).");
     }
     $appender = new LoggerAppenderSyslog();
     $appender->setPriority('EMERG');
     $appender->setOverridePriority(true);
     $appender->activateOptions();
     $levels = array(LoggerLevel::getLevelTrace(), LoggerLevel::getLevelDebug(), LoggerLevel::getLevelInfo(), LoggerLevel::getLevelWarn(), LoggerLevel::getLevelError(), LoggerLevel::getLevelFatal());
     $expected = LOG_EMERG;
     $method = new ReflectionMethod('LoggerAppenderSyslog', 'getSyslogPriority');
     $method->setAccessible(true);
     foreach ($levels as $level) {
         $actual = $method->invoke($appender, $level);
         $this->assertSame($expected, $actual);
     }
 }
Ejemplo n.º 24
0
 public function testLevelInfo()
 {
     $this->doTestLevel(LoggerLevel::getLevelInfo(), LoggerLevel::INFO, 'INFO', 6);
     $this->doTestLevel(LoggerLevel::toLevel(LoggerLevel::INFO), LoggerLevel::INFO, 'INFO', 6);
     $this->doTestLevel(LoggerLevel::toLevel('INFO'), LoggerLevel::INFO, 'INFO', 6);
 }
Ejemplo n.º 25
0
 public function testServerKey()
 {
     // Test reading a server variable
     $value = $_SERVER['PHP_SELF'];
     self::assertEquals($value, LoggerMDC::get('server.PHP_SELF'));
     // Test the server variable in a pattern
     $event = new LoggerLoggingEvent("LoggerLayoutPattern", new Logger("TEST"), LoggerLevel::getLevelInfo(), "Test message");
     $actual = $this->formatEvent($event, $this->patternServer);
     $expected = "INFO  TEST: {$value} Test message";
     self::assertEquals($expected, $actual);
     // Test reading a non-existant server variable
     self::assertEquals('', LoggerMDC::get('server.hopefully_this_variable_doesnt_exist'));
     // Test reading an empty server variable
     self::assertEquals('', LoggerMDC::get('server.'));
 }