public function testLoggingMethods() { Logger::emergency("Test logger!"); Logger::alert("Test logger!"); Logger::critical("Test logger!"); Logger::error("Test logger!"); Logger::warning("Test logger!"); Logger::notice("Test logger!"); Logger::info("Test logger!"); Logger::debug("Test logger!"); $this->assertStringEqualsFile(vfsStream::url("logs/file.log"), $this->log); }
/** * * @return ajumamoro\Store */ public static function getInstance() { $delay = 30; while (self::$instance === null) { try { self::$instance = self::factory(); self::$instance->init(); } catch (exceptions\BrokerConnectionException $e) { Logger::alert("{$e->getMessage()}. Retrying in {$delay} seconds."); sleep($delay); $delay *= 2; } } Logger::info("Succesfully connected to broker"); return self::$instance; }
public function run($options) { if (isset($options['config'])) { Config::readPath($options['config'], 'ajumamoro'); } if ($options['daemon'] === true) { ClearIce::output("Starting ajumamoro daemon ... "); Logger::init(Config::get('ajumamoro:log_file', './ajumamoro.log'), 'ajumamoro'); if ($this->checkExistingInstance() === false) { $pid = $this->startDaemon($options); ClearIce::output($pid > 0 ? "OK [PID:{$pid}]\n" : "Failed\n"); } else { ClearIce::output("Failed\nAn instance already exists.\n"); } } else { Logger::init('php://output', 'ajumamoro'); Runner::mainLoop(); } }
public static function init($namespace) { self::$namespace = $namespace; self::$prefix = Config::get('app.prefix'); self::$prefix = (self::$prefix == '' ? '' : '/') . self::$prefix; self::setupAutoloader(); logger\Logger::init('logs/app.log'); Config::readPath(self::$configPath, 'ntentan'); kaikai\Cache::init(); panie\InjectionContainer::bind(ModelClassResolverInterface::class)->to(ClassNameResolver::class); panie\InjectionContainer::bind(ModelJoinerInterface::class)->to(ClassNameResolver::class); panie\InjectionContainer::bind(TableNameResolverInterface::class)->to(nibii\Resolver::class); panie\InjectionContainer::bind(ComponentResolverInterface::class)->to(ClassNameResolver::class); panie\InjectionContainer::bind(ControllerClassResolverInterface::class)->to(ClassNameResolver::class); panie\InjectionContainer::bind(controllers\RouterInterface::class)->to(DefaultRouter::class); if (Config::get('ntentan:db.driver')) { panie\InjectionContainer::bind(DriverAdapter::class)->to(Resolver::getDriverAdapterClassName()); panie\InjectionContainer::bind(atiaa\Driver::class)->to(atiaa\Db::getDefaultDriverClassName()); } Controller::setComponentResolverParameters(['type' => 'component', 'namespaces' => [$namespace, 'controllers\\components']]); nibii\RecordWrapper::setComponentResolverParameters(['type' => 'behaviour', 'namespaces' => [$namespace, 'nibii\\behaviours']]); controllers\ModelBinderRegister::setDefaultBinderClass(controllers\model_binders\DefaultModelBinder::class); controllers\ModelBinderRegister::register(utils\filesystem\UploadedFile::class, controllers\model_binders\UploadedFileBinder::class); }
public function log($message, $level = self::LOG_INFO) { \ntentan\logger\Logger::log($level, $message); }
public static function getNextJob() { $broker = Broker::getInstance(); $jobInfo = $broker->get(); if (file_exists($jobInfo['path'])) { require_once $jobInfo['path']; } if (!class_exists($jobInfo['class'])) { Logger::error("Class {$jobInfo['class']} for scheduled job not found"); return false; } $job = unserialize($jobInfo['object']); if (is_object($job) && is_a($job, '\\ajumamoro\\Job')) { $job->setId($jobInfo['id']); return $job; } else { Logger::error("Scheduled job is not of type \\ajumamoro\\Job."); return false; } }