Source for file jLogErrorMessage.class.php

Documentation is available at jLogErrorMessage.class.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage core
  5. @author     Laurent Jouanneau
  6. @contributor Brice Tence
  7. @copyright  2006-2012 Laurent Jouanneau, 2011 Brice Tence
  8. @link       http://www.jelix.org
  9. @licence    GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. */
  11.  
  12. /**
  13.  * this class is formatting an error message for a logger
  14.  */
  15. class jLogErrorMessage implements jILogMessage {
  16.     protected $category;
  17.     protected $message;
  18.     protected $file;
  19.     protected $line;
  20.     protected $trace;
  21.     protected $code;
  22.     protected $format = '%date%\t%ip%\t[%code%]\t%msg%\t%file%\t%line%\n\t%url%\n%params%\n%trace%';
  23.  
  24.     /**
  25.      * @param string $category category of the message (error, warning...)
  26.      * @param integer $code  error code
  27.      * @param string $message error message
  28.      * @param string $file  file path + file name where the error appeared
  29.      * @param integer $line the line where the error appeared
  30.      * @param array $trace stack trace
  31.      */
  32.     public function __construct($category$code$message$file$line$trace{
  33.         $this->category = $category;
  34.         $this->message = $message;
  35.         $this->code = $code;
  36.         $this->file = $file;
  37.         $this->line = $line;
  38.         $this->trace = $trace;
  39.     }
  40.  
  41.     /**
  42.      * set the pattern to format the message output
  43.      * @param string $format 
  44.      */
  45.     public function setFormat($format{
  46.         $this->format = $format;
  47.     }
  48.  
  49.     /**
  50.      * @return string error code
  51.      */
  52.     public function getCode({
  53.         return $this->code;
  54.     }
  55.  
  56.     /**
  57.      * @return string category of the message (error, warning...)
  58.      */
  59.     public function getCategory({
  60.         return $this->category;
  61.     }
  62.  
  63.     /**
  64.      * @return string error message
  65.      */
  66.     public function getMessage({
  67.         return $this->message;
  68.     }
  69.  
  70.     /**
  71.      * @return string file path + file name where the error appeared
  72.      */
  73.     public function getFile({
  74.         return $this->file;
  75.     }
  76.  
  77.     /**
  78.      * @return integer the line where the error appeared
  79.      */
  80.     public function getLine({
  81.         return $this->line;
  82.     }
  83.  
  84.     /**
  85.      * @return array the stack trace
  86.      */
  87.     public function getTrace({
  88.         return $this->trace;
  89.     }
  90.  
  91.     /**
  92.      * @return string formated error message
  93.      */
  94.     public function getFormatedMessage({
  95.  
  96.         if (isset($_SERVER['REQUEST_URI']))
  97.             $url $_SERVER['REQUEST_URI'];
  98.         elseif(isset($_SERVER['SCRIPT_NAME']))
  99.             $url $_SERVER['SCRIPT_NAME'];
  100.         else
  101.             $url 'Unknow request';
  102.  
  103.         // url params including module and action
  104.         if (jApp::coord(&& ($req jApp::coord()->request)) {
  105.             $params str_replace("\n"' 'var_export($req->paramstrue));
  106.             $remoteAddr $req->getIP();
  107.         }
  108.         else {
  109.             $params = isset($_SERVER['QUERY_STRING'])?$_SERVER['QUERY_STRING']:'';
  110.             // When we are in cmdline we need to fix the remoteAddr
  111.             $remoteAddr = isset($_SERVER['REMOTE_ADDR']$_SERVER['REMOTE_ADDR''127.0.0.1';
  112.         }
  113.  
  114.         $traceLog="";
  115.         foreach($this->trace as $k=>$t){
  116.             $traceLog.="\n\t$k\t".(isset($t['class'])?$t['class'].$t['type']:'').$t['function']."()\t";
  117.             $traceLog.=(isset($t['file'])?$t['file']:'[php]').' : '.(isset($t['line'])?$t['line']:'');
  118.         }
  119.  
  120.         // referer
  121.         $httpReferer = isset($_SERVER['HTTP_REFERER']$_SERVER['HTTP_REFERER''Unknown referer';
  122.  
  123.         $messageLog strtr($this->formatarray(
  124.             '%date%' => @date("Y-m-d H:i:s")// @ because if the timezone is not set, we will have an error here
  125.             '%typeerror%'=>$this->category,
  126.             '%code%' => $this->code,
  127.             '%msg%'  => $this->message,
  128.             '%ip%'   => $remoteAddr,
  129.             '%url%'  => $url,
  130.             '%referer%'  => $httpReferer,
  131.             '%params%'=>$params,
  132.             '%file%' => $this->file,
  133.             '%line%' => $this->line,
  134.             '%trace%' => $traceLog,
  135.             '\t' =>"\t",
  136.             '\n' => "\n"
  137.         ));
  138.  
  139.         return $messageLog;
  140.     }
  141. }

Documentation generated on Wed, 04 Jan 2017 22:55:47 +0100 by phpDocumentor 1.4.3