public function testCreateLogger()
 {
     $logger = Cascade::createLogger('test');
     $this->assertTrue($logger instanceof Logger);
     $this->assertEquals('test', $logger->getName());
     $this->assertTrue(Registry::hasLogger('test'));
 }
 /**
  * @dataProvider hasLoggerProvider
  * @covers Monolog\Registry::hasLogger
  */
 public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult)
 {
     foreach ($loggersToAdd as $loggerToAdd) {
         Registry::addLogger($loggerToAdd);
     }
     foreach ($loggersToCheck as $index => $loggerToCheck) {
         $this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck));
     }
 }
 public function testLoggersConfigured()
 {
     $options = Fixtures::getPhpArrayConfig();
     // Mocking the ConfigLoader with the load method
     $configLoader = $this->getMockBuilder('Cascade\\Config\\ConfigLoader')->disableOriginalConstructor()->setMethods(array('load'))->getMock();
     $configLoader->method('load')->willReturn($options);
     $config = new Config($options, $configLoader);
     $config->load();
     $config->configure();
     $this->assertTrue(Registry::hasLogger('my_logger'));
 }
Beispiel #4
0
 /**
  * Get a Logger instance by name. Creates a new one if a Logger with the
  * provided name does not exist
  *
  * @param  string $name Name of the requested Logger instance
  *
  * @return Logger Requested instance of Logger or new instance
  */
 public static function getLogger($name)
 {
     if (Registry::hasLogger($name)) {
         return Registry::getInstance($name);
     } else {
         if (Registry::hasLogger('default')) {
             return Registry::getInstance('default');
         }
     }
     return self::createLogger($name);
 }
Beispiel #5
0
 public function __construct($raw)
 {
     $this->eventManager = new EventManager();
     // Setup logging
     if (!Registry::hasLogger('PhlowLog')) {
         $logger = new Logger('phlow');
         $logger->pushHandler(new StreamHandler("phlow.log"));
         Registry::addLogger($logger, 'PhlowLog');
     }
     $this->raw = $raw;
     $this->inflate();
 }
Beispiel #6
0
 /**
  * Set local variables and bootstrap logging
  *
  * @param string $domain
  * @param string $taskList
  */
 private function setup($identity, $domain, $taskList, Logger $logger)
 {
     if (!$identity) {
         $this->identity = get_class() . '-' . microtime();
     }
     $this->taskList = $taskList;
     $this->domain = $domain;
     // Setup logging
     if (!Registry::hasLogger('PhlowLog')) {
         Registry::addLogger($logger, 'PhlowLog');
     }
 }
Beispiel #7
0
<?php

/*
 * This file is part of the Pathfinder package.
 *
 * (c) bitExpert AG
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
declare (strict_types=1);
// include and configure Composer autoloader
include __DIR__ . '/../vendor/autoload.php';
// configure the Simple Logging Facade for PSR-3 loggers with a Monolog backend
\bitExpert\Slf4PsrLog\LoggerFactory::registerFactoryCallback(function ($channel) {
    if (!\Monolog\Registry::hasLogger($channel)) {
        \Monolog\Registry::addLogger(new \Monolog\Logger($channel));
    }
    return \Monolog\Registry::getInstance($channel);
});
 public function testConstructor()
 {
     $loader = new LoggerLoader('testLogger');
     $this->assertTrue(Registry::hasLogger('testLogger'));
 }
Beispiel #9
0
/** Add information to the log file */
function add_log($text, $function, $type = LOG_INFO, $projectid = 0, $buildid = 0, $resourcetype = 0, $resourceid = 0)
{
    global $CDASH_LOG_FILE, $CDASH_LOG_FILE_MAXSIZE_MB, $CDASH_LOG_LEVEL, $CDASH_TESTING_MODE;
    $level = to_psr3_level($type);
    if (($buildid === 0 || is_null($buildid)) && isset($GLOBALS['PHP_ERROR_BUILD_ID'])) {
        $buildid = $GLOBALS['PHP_ERROR_BUILD_ID'];
    }
    $context = array('function' => $function);
    if ($projectid !== 0 && !is_null($projectid)) {
        $context['project_id'] = $projectid;
    }
    if ($buildid !== 0 && !is_null($buildid)) {
        $context['build_id'] = strval($buildid);
    }
    if ($resourcetype !== 0 && !is_null($resourcetype)) {
        $context['resource_type'] = $resourcetype;
    }
    if ($resourceid !== 0 && !is_null($resourceid)) {
        $context['resource_id'] = $resourceid;
    }
    $minLevel = to_psr3_level($CDASH_LOG_LEVEL);
    if (!is_null($CDASH_LOG_FILE)) {
        // If the size of the log file is bigger than 10 times the allocated memory
        // we rotate
        $logFileMaxSize = $CDASH_LOG_FILE_MAXSIZE_MB * 100000;
        if (file_exists($CDASH_LOG_FILE) && filesize($CDASH_LOG_FILE) > $logFileMaxSize) {
            $tempLogFile = $CDASH_LOG_FILE . '.tmp';
            if (!file_exists($tempLogFile)) {
                rename($CDASH_LOG_FILE, $tempLogFile);
                // This should be quick so we can keep logging
                for ($i = 9; $i >= 0; $i--) {
                    // If we do not have compression we just rename the files
                    if (function_exists('gzwrite') === false) {
                        $currentLogFile = $CDASH_LOG_FILE . '.' . $i;
                        $j = $i + 1;
                        $newLogFile = $CDASH_LOG_FILE . '.' . $j;
                        if (file_exists($newLogFile)) {
                            cdash_unlink($newLogFile);
                        }
                        if (file_exists($currentLogFile)) {
                            rename($currentLogFile, $newLogFile);
                        }
                    } else {
                        $currentLogFile = $CDASH_LOG_FILE . '.' . $i . '.gz';
                        $j = $i + 1;
                        $newLogFile = $CDASH_LOG_FILE . '.' . $j . '.gz';
                        if (file_exists($newLogFile)) {
                            cdash_unlink($newLogFile);
                        }
                        if (file_exists($currentLogFile)) {
                            $gz = gzopen($newLogFile, 'wb');
                            $f = fopen($currentLogFile, 'rb');
                            while ($f && !feof($f)) {
                                gzwrite($gz, fread($f, 8192));
                            }
                            fclose($f);
                            unset($f);
                            gzclose($gz);
                            unset($gz);
                        }
                    }
                }
                // Move the current backup
                if (function_exists('gzwrite') === false) {
                    rename($tempLogFile, $CDASH_LOG_FILE . '.0');
                } else {
                    $gz = gzopen($CDASH_LOG_FILE . '.0.gz', 'wb');
                    $f = fopen($tempLogFile, 'rb');
                    while ($f && !feof($f)) {
                        gzwrite($gz, fread($f, 8192));
                    }
                    fclose($f);
                    unset($f);
                    gzclose($gz);
                    unset($gz);
                    cdash_unlink($tempLogFile);
                }
            }
        }
        $pid = getmypid();
        if ($pid !== false) {
            $context['pid'] = getmypid();
        }
    }
    if (Registry::hasLogger('cdash') === false) {
        if ($CDASH_LOG_FILE === false) {
            $handler = new SyslogHandler('cdash', LOG_USER, $minLevel);
            $handler->getFormatter()->ignoreEmptyContextAndExtra();
        } else {
            if ($CDASH_TESTING_MODE) {
                $filePermission = 0666;
            } else {
                $filePermission = 0664;
            }
            $handler = new StreamHandler($CDASH_LOG_FILE, $minLevel, true, $filePermission);
            $handler->getFormatter()->allowInlineLineBreaks();
            $handler->getFormatter()->ignoreEmptyContextAndExtra();
        }
        $logger = new Logger('cdash');
        $logger->pushHandler($handler);
        Registry::addLogger($logger);
    } else {
        $logger = Registry::getInstance('cdash');
    }
    $logger->log($level, $text, $context);
}
Beispiel #10
0
 /**
  * Get a Logger instance by name. Creates a new one if a Logger with the
  * provided name does not exist
  *
  * @param  string $name Name of the requested Logger instance
  *
  * @return Logger Requested instance of Logger or new instance
  */
 public static function getLogger($name)
 {
     return Registry::hasLogger($name) ? Registry::getInstance($name) : self::createLogger($name);
 }