Dietcube\Application::createLogger PHP Method

createLogger() public method

public createLogger ( $path, $level = Logger::WARNING )
    public function createLogger($path, $level = Logger::WARNING)
    {
        $logger = new Logger('app');
        $logger->pushProcessor(new PsrLogMessageProcessor());
        if (is_writable($path) || is_writable(dirname($path))) {
            $logger->pushHandler(new StreamHandler($path, $level));
        } else {
            if ($this->isDebug()) {
                throw new DCException("Log path '{$path}' is not writable. Make sure your logger.path of config.");
            }
            $logger->pushHandler(new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, $level));
            $logger->warning("Log path '{$path}' is not writable. Make sure your logger.path of config.");
            $logger->warning("error_log() is used for application logger instead at this time.");
        }
        return $logger;
    }

Usage Example

コード例 #1
0
ファイル: Dispatcher.php プロジェクト: mercari/dietcube
 public function boot()
 {
     $this->app->loadConfig();
     $container = $this->container = new Container();
     $this->container['event_dispatcher'] = $this->event_dispatcher = new EventDispatcher();
     $this->container['app'] = $this->app;
     $this->app->setContainer($container);
     $config = $this->container['app.config'] = $this->app->getConfig();
     $this->container['logger'] = $logger = $this->app->createLogger($config->get('logger.path'), $config->get('logger.level', Logger::WARNING));
     $logger->debug('Application booted. env={env}', ['env' => $this->app->getEnv()]);
     $logger->debug('Config file loaded. config_files={files}', ['files' => implode(',', $this->app->getConfigFiles())]);
     $this->bootGlobals();
     $this->app->initHttpRequest($this->container);
     $this->app->init($this->container);
     if (!isset($this->container['router'])) {
         $this->container['router'] = new Router($this->container);
         $this->container['router']->addRoute($this->app->getRoute());
     }
     if (!isset($this->container['app.renderer'])) {
         $this->container['app.renderer'] = function () {
             return $this->createRenderer();
         };
     }
     $this->app->config($this->container);
     $this->event_dispatcher->dispatch(DietcubeEvents::BOOT, new BootEvent($this->app));
 }