コード例 #1
0
 /**
  * @return MAIL_PROVIDER
  */
 public function make_mail_provider()
 {
     $class_name = $this->final_class_name('MAIL_PROVIDER', 'webcore/mail/mail_provider.php');
     /** @var $Result MAIL_PROVIDER */
     $Result = new $class_name($this);
     $opts = $this->mail_options;
     if ($opts->logging_enabled) {
         $class_name = $this->final_class_name('FILE_LOGGER', 'webcore/log/file_logger.php');
         /** @var $logger FILE_LOGGER */
         $logger = new $class_name();
         $logger->set_file_name($this->env->resolve_file($opts->log_file_name));
         if ($this->env->debugging) {
             $logger->set_enabled(Msg_type_all);
         } else {
             $logger->set_enabled(Msg_type_all - Msg_type_all_debug);
             $logger->set_channel_enabled(Msg_channel_publisher, Msg_type_all - Msg_type_all_debug);
             $logger->set_channel_enabled(Msg_channel_mail, Msg_type_all - Msg_type_all_debug);
         }
         $Result->logs->set_logger($logger);
     }
     return $Result;
 }
コード例 #2
0
 /**
  * Send the error to the logger.
  * @param EXCEPTION_SIGNATURE $sig
  * @param string $msg
  * @access private
  */
 public function dispatch($sig, $msg)
 {
     if ($this->env->is_http_server() && $this->env->buffered() && $this->env->exception_handler_page) {
         $current_url = $this->env->url();
         $handler_url = $this->env->resolve_file($this->env->exception_handler_page);
         if (strpos($current_url, $handler_url) === false) {
             $parameters = $sig->as_query_string();
             $this->env->redirect_root($handler_url . '?' . $parameters);
         } else {
             parent::dispatch($sig, $msg);
         }
     } else {
         parent::dispatch($sig, $msg);
     }
 }
コード例 #3
0
ファイル: engine.php プロジェクト: mvonballmo/earthli-webcore
 /**
  * Return a logger that records messages to a plain text file.
  * Override the "FILE_LOGGER" extension point to control which type of object
  * is created.
  * @see _make_echo_logger()
  * @see _make_console_logger()
  * @param ENVIRONMENT $env
  * @param string $file_name Path to the log file; resolved relative to the
  * environment. Use the {@link Folder_name_logs} alias to store in the default
  * logs folder.
  * @param boolean $is_html False uses plain text formatting.
  * @return FILE_LOGGER
  * @access private
  */
 protected function _make_text_file_logger($env, $file_name, $is_html = false)
 {
     $class_name = $this->final_class_name('FILE_LOGGER', 'webcore/log/file_logger.php');
     $Result = new $class_name($env);
     /* Resolve the log file to use relative to the environment. */
     $Result->set_file_name($env->resolve_file($file_name));
     /* Display message type only if the log is plain text (HTML
      * uses a CSS class).
      */
     $Result->set_is_html($is_html);
     $Result->show_type = !$is_html;
     return $Result;
 }