コード例 #1
0
ファイル: LevelTest.php プロジェクト: rafsalvioni/zeus-log
 /**
  * @test
  */
 public function constsTest()
 {
     $mask = 0;
     foreach (self::$constsNames as &$name) {
         $const = Level::class . '::' . $name;
         if (!\defined($const)) {
             $this->assertTrue(false);
             return;
         }
         $level = \constant($const);
         if (!\is_int($level)) {
             $this->assertTrue(false);
             return;
         }
         if (!BitMask::isSingleFlag($level)) {
             $this->assertTrue(false);
             return;
         }
         $foo = BitMask::addFlag($mask, $level);
         if ($foo === $mask) {
             $this->assertTrue(false);
             return;
         }
         $mask = $foo;
     }
     $this->assertTrue(true);
 }
コード例 #2
0
ファイル: BitMaskTest.php プロジェクト: rafsalvioni/zeus-core
 /**
  * @test
  */
 public function compositeTest()
 {
     $flag = 1;
     $rand = \mt_rand(0, 5);
     $flag = $flag << $rand;
     $this->assertTrue(!BitMask::isSingleFlag($flag > 2 ? $flag + 2 : 3) && BitMask::isSingleFlag($flag) && !BitMask::isSingleFlag(0));
 }
コード例 #3
0
ファイル: Logger.php プロジェクト: rafsalvioni/zeus-log
 /**
  * 
  * @param int|string $level
  * @param string $message
  * @param array $context
  * @return self
  */
 public function log($level, $message, array $context = array())
 {
     // Converting Psr\LogLevel to int
     $level = Level::toLevel($level);
     // Level is unknown? Stop
     if (!Level::is($level)) {
         $this->emit('unknown', $level, $message);
         return $this;
     }
     // If $level is a mask, explode it!
     if (!BitMask::isSingleFlag($level)) {
         $me = __FUNCTION__;
         foreach (BitMask::maskToFlags($level) as $flag) {
             $this->{$me}($flag, $message, $context);
         }
         return $this;
     } else {
         if (!$this->handler->isHandled($level)) {
             $this->emit('unhandled', $level, $message);
             return $this;
         }
     }
     // Make log struct
     $log = ['level' => $level, 'name' => Level::getLevelName($level), 'message' => $message, 'context' => $context, 'timestamp' => \microtime(true), 'extra' => []];
     // Iterate the filters
     foreach ($this->filters as &$filter) {
         $log = $filter($log);
     }
     $this->emit('log', $log);
     $this->emit(\strtolower($log['name']), $log);
     // Call handler
     $this->handler->handle($log);
     return $this;
 }