/**
  * 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);
 }
Beispiel #8
0
 /**
  * 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);
 }
Beispiel #14
0
 /**
  * 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);
 }
Beispiel #21
0
 /**
  * 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);
         }
     }
 }