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); }
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()); }
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 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); }
/** * Check whether this Logger is enabled for the INFO Level. * @return boolean */ public function isInfoEnabled() { return $this->isEnabledFor(LoggerLevel::getLevelInfo()); }
/** * 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()); }
/** * @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); }
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; } }
/** * 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; } } } }
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); }
/** * 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}"); } } }
/** * 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); }
/** 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()); }
/** * 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; }
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); } }
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); }
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.')); }