/** * Return the decision of this filter. * * Returns {@link LoggerFilter::NEUTRAL} if the <b><var>LevelToMatch</var></b> * option is not set or if there is not match. Otherwise, if there is a * match, then the returned decision is {@link LoggerFilter::ACCEPT} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>true</i>. The * returned decision is {@link LoggerFilter::DENY} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>false</i>. * * @param LoggerLoggingEvent $event * @return integer */ public function decide(LoggerLoggingEvent $event) { if ($this->levelToMatch === null) { return LoggerFilter::NEUTRAL; } if ($this->levelToMatch->equals($event->getLevel())) { return $this->acceptOnMatch ? LoggerFilter::ACCEPT : LoggerFilter::DENY; } else { return LoggerFilter::NEUTRAL; } }
/** * Return the decision of this filter. * * @param LoggerLoggingEvent $event * @return integer */ public function decide(LoggerLoggingEvent $event) { $level = $event->getLevel(); if ($this->levelMin !== null) { if ($level->isGreaterOrEqual($this->levelMin) == false) { // level of event is less than minimum return LoggerFilter::DENY; } } if ($this->levelMax !== null) { if ($level->toInt() > $this->levelMax->toInt()) { // level of event is greater than maximum // Alas, there is no Level.isGreater method. and using // a combo of isGreaterOrEqual && !Equal seems worse than // checking the int values of the level objects.. return LoggerFilter::DENY; } } if ($this->acceptOnMatch) { // this filter set up to bypass later filters and always return // accept if level in range return LoggerFilter::ACCEPT; } else { // event is ok for this filter; allow later filters to have a look.. return LoggerFilter::NEUTRAL; } }
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 testSimpleLogging() { if (!extension_loaded('pdo_sqlite')) { self::markTestSkipped("Please install 'pdo_sqlite' in order to run this test"); } $event = new LoggerLoggingEvent("LoggerAppenderPDOTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $dbname = '../../../target/pdotest.sqlite'; $dsn = 'sqlite:' . $dbname; $database = new PDO($dsn); $database = null; $appender = new LoggerAppenderPDO("myname"); $appender->setDSN($dsn); $appender->setCreateTable(true); $appender->activateOptions(); $appender->append($event); $db = $appender->getDatabaseHandle(); $q = "select * from log4php_log"; $error = ""; if ($result = $db->query($q)) { while ($row = $result->fetch()) { self::assertEquals($row['1'], 'TEST'); self::assertEquals($row['2'], 'ERROR'); self::assertEquals($row['3'], 'testmessage'); } } else { // todo propagate exception to phpunit self::assertTrue(false); } $appender->close(); }
/** * 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 testErrorLayout() { $event = new LoggerLoggingEvent("LoggerLayoutXml", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $e = 'ERROR TEST : testmessage in NA at NA' . PHP_EOL; $patternParser = new LoggerPatternParser("%-5p %c %X{username}: %m in %F at %L%n"); $c = $patternParser->parse(); $c->format($e, $event); }
/** * Constructor * * @param integer $level initial log level */ public function __construct($level = null) { parent::__construct('root'); if ($level == null) { $level = LoggerLevel::getLevelAll(); } $this->setLevel($level); }
public function testInitialSetup() { $root = new LoggerRoot(); self::assertSame(LoggerLevel::getLevelAll(), $root->getLevel()); self::assertSame(LoggerLevel::getLevelAll(), $root->getEffectiveLevel()); self::assertSame('root', $root->getName()); self::assertNull($root->getParent()); }
public function testWarnLayout() { $event = new LoggerLoggingEvent("LoggerLayoutXml", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $layout = new LoggerLayoutXml(); $v = $layout->format($event); $e = "<log4php:event logger=\"TEST\" level=\"WARN\" thread=\"" . $event->getThreadName() . "\" timestamp=\"" . number_format((double) ($event->getTimeStamp() * 1000), 0, '', '') . "\">" . PHP_EOL . "<log4php:message><![CDATA[testmessage]]></log4php:message>" . PHP_EOL . "<log4php:locationInfo class=\"LoggerLoggingEvent\" file=\"NA\" line=\"NA\" " . "method=\"getLocationInformation\" />" . PHP_EOL . "</log4php:event>\n" . PHP_EOL; self::assertEquals($v, $e); }
public function testClassnamePattern() { $event = new LoggerLoggingEvent("LoggerLayoutPatternTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $v = $this->formatEvent($event, '%C'); $dt = $this->getEventDateTime($event); $e = "LoggerLayoutPatternTest"; self::assertEquals($e, $v); }
public function testSimpleLayout() { $event = new LoggerLoggingEvent("LoggerLayoutSimpleTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $layout = new LoggerLayoutSimple(); $v = $layout->format($event); $e = "ERROR - testmessage\n"; self::assertEquals($v, $e); }
public function testWarnLayout() { $event = new LoggerLoggingEvent("LoggerLayoutHtmlTest", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $layout = new LoggerLayoutHtml(); $v = $layout->format($event); $e = PHP_EOL . "<tr>" . PHP_EOL . "<td>" . round(1000 * $event->getRelativeTime()) . "</td>" . PHP_EOL . "<td title=\"" . $event->getThreadName() . " thread\">" . $event->getThreadName() . "</td>" . PHP_EOL . "<td title=\"Level\"><font color=\"#993300\"><strong>WARN</strong></font></td>" . PHP_EOL . "<td title=\"TEST category\">TEST</td>" . PHP_EOL . "<td title=\"Message\">testmessage</td>" . PHP_EOL . "</tr>" . PHP_EOL; self::assertEquals($v, $e); }
/** * Constructor * * @param integer $level initial log level */ function LoggerRoot($level = null) { $this->Logger($this->name); if ($level == null) { $level = LoggerLevel::getLevelAll(); } $this->setLevel($level); }
public function testSimpleLayout() { $event = new LoggerLoggingEvent("LoggerLayoutSimpleTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $layout = new LoggerLayoutSimple(); $actual = $layout->format($event); $expected = "ERROR - testmessage" . PHP_EOL; self::assertEquals($expected, $actual); }
/** * Logs with an arbitrary level. * * @param mixed $level * @param mixed $message * @param mixed[] $context * @return null */ public function log($level, $message, array $context = array()) { if (!array_key_exists($level, $this->levels)) { $level = $this->defaultLevel; } $level = \LoggerLevel::toLevel($this->levels[$level], $this->defaultLevel); $message = $this->formatter->format($level, $message, $context); $this->logger->log($level, $message); }
public function testClassname() { $event = new LoggerLoggingEvent("MyClass", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $expected = 'MyClass'; $patternParser = new LoggerPatternParser("%C"); $c = $patternParser->parse(); $actual = ''; $c->format($actual, $event); self::assertEquals($expected, $actual); }
public function testSimpleDefaultLogging() { $layout = new LoggerLayoutSimple(); $event = new LoggerLoggingEvent('LoggerAppenderConsoleTest', new Logger('mycategory'), LoggerLevel::getLevelWarn(), "my message"); $appender = new LoggerAppenderConsole("mylogger"); $appender->setLayout($layout); $appender->activateOptions(); $appender->append($event); $appender->close(); }
public function testConfigureWithRootCategory() { Logger::configure('configurators/test3.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); }
/** Tests Exception due to unreachable remote host. * * @expectedException LoggerException */ public function testSocketProblem() { $appender = new LoggerAppenderSocket("myname "); $appender->setDry(false); $appender->setRemoteHost("does.not.exists"); $appender->setPort(1234); $appender->activateOptions(); $event = new LoggerLoggingEvent("LoggerAppenderSocketTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); $appender->append($event); }
/** * Return the decision of this filter. * * Returns {@link LOG4PHP_LOGGER_FILTER_NEUTRAL} if the <b><var>LevelToMatch</var></b> * option is not set or if there is not match. Otherwise, if there is a * match, then the returned decision is {@link LOG4PHP_LOGGER_FILTER_ACCEPT} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>true</i>. The * returned decision is {@link LOG4PHP_LOGGER_FILTER_DENY} if the * <b><var>AcceptOnMatch</var></b> property is set to <i>false</i>. * * @param LoggerLoggingEvent $event * @return integer */ function decide($event) { if ($this->levelToMatch === null) { return LOG4PHP_LOGGER_FILTER_NEUTRAL; } if ($this->levelToMatch->equals($event->getLevel())) { return $this->getAcceptOnMatch() ? LOG4PHP_LOGGER_FILTER_ACCEPT : LOG4PHP_LOGGER_FILTER_DENY; } else { return LOG4PHP_LOGGER_FILTER_NEUTRAL; } }
public function 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 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 append(LoggerLoggingEvent $event) { $level = $event->getLevel(); if ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) { trigger_error($this->layout->format($event), E_USER_ERROR); } else { if ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) { trigger_error($this->layout->format($event), E_USER_WARNING); } else { trigger_error($this->layout->format($event), E_USER_NOTICE); } } }
public function 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()); }
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 testEcho() { $appender = new LoggerAppenderEcho("myname "); $layout = new LoggerLayoutSimple(); $appender->setLayout($layout); $appender->activateOptions(); $event = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage"); ob_start(); $appender->append($event); $v = ob_get_contents(); ob_end_clean(); $e = "ERROR - testmessage\n"; self::assertEquals($v, $e); }
public function testWarnLayout() { $event = new LoggerLoggingEvent("LoggerLayoutXml", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $layout = new LoggerLayoutTTCC(); $v = $layout->format($event); $pos = strpos($v, "[" . $event->getThreadName() . "] WARN TEST - testmessage"); if ($pos === false) { self::assertTrue(false); } else { if ($pos === true) { self::assertTrue(true); } } }
public function testSimpleLogging() { $layout = new LoggerLayoutSimple(); $event = new LoggerLoggingEvent('LoggerAppenderFileTest', new Logger('mycategory'), LoggerLevel::getLevelWarn(), "my message"); $appender = new LoggerAppenderFile("mylogger"); $appender->setFileName('../../../target/temp/phpunit/TEST.txt'); $appender->setLayout($layout); $appender->activateOptions(); $appender->append($event); $appender->close(); $v = file_get_contents('../../../target/temp/phpunit/TEST.txt'); $e = "WARN - my message" . PHP_EOL; self::assertEquals($e, $v); }
public function append($event) { if ($this->layout !== null) { LoggerLog::debug("LoggerAppenderPhp::append()"); $level = $event->getLevel(); if ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) { trigger_error($this->layout->format($event), E_USER_ERROR); } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) { trigger_error($this->layout->format($event), E_USER_WARNING); } else { trigger_error($this->layout->format($event), E_USER_NOTICE); } } }