CMS  Version 3.9
ErrorLogManager Class Reference

Static Public Member Functions

static setDefaults ()
 
static enableLogging ()
 
static logError ($exception)
 Manually log an exception in the error log. More...
 
static exceptionHandler ($exception)
 
static upgradeComponent ($version)
 

Static Public Attributes

static $enableLogging = false
 
static $loggingDestination = ""
 
static $errorPageTemplate = ""
 

Detailed Description

Definition at line 39 of file error_log_manager.inc.

Member Function Documentation

◆ enableLogging()

static ErrorLogManager::enableLogging ( )
static

Definition at line 52 of file error_log_manager.inc.

53  {
54  ErrorLogManager::$enableLogging = Settings::getValue("error_log", "enable_logging");
55  ErrorLogManager::$loggingDestination = Settings::getValue("error_log", "logging_destination");
56  ErrorLogManager::$errorPageTemplate = Settings::getValue("error_log", "error_page_template");
57 
58  set_exception_handler(array("ErrorLogManager", "exceptionHandler"));
59 
60  }
static getValue($component, $name)
Retrieve the value of the specified Setting.
Definition: settings.inc:104

◆ exceptionHandler()

static ErrorLogManager::exceptionHandler (   $exception)
static

Definition at line 134 of file error_log_manager.inc.

135  {
136  global $user;
137  global $isAction;
138 
139  try
140  {
141  //Getting exception information
142  $errMsg = $exception->getMessage();
143  $errLevel = $exception->getCode();
144  $errFile = $exception->getFile();
145  $errLine = $exception->getLine();
146  $uri = $_SERVER['REQUEST_URI'];
147  $referer = $_SERVER['HTTP_REFERER'];
148 
149  if ($errLevel & (E_NOTICE | E_WARNING | E_USER_WARNING | E_STRICT)) return;
150 
151  while(ob_end_clean()); // Clear all output buffers.
152 
153  $log = new ErrorLog();
154  $log->code = $errLevel;
155  $log->message = $errMsg;
156  $log->file = $errFile;
157  $log->line = $errLine;
158  $log->details = $exception->getTraceAsString();
159  $log->user_id = $user ? $user->get($user->getPrimaryKey()) : 0;
160  $log->uri = $uri;
161  $log->referer = $referer;
162  $log->session = session_id();
163 
165  {
166  try
167  {
169  {
170  case "Database":
171 
172 
173  $log->save();
174 
175  break;
176 
177  case "Log File":
178 
179  trace($errMsg, 2, $exception->getTrace());
180  break;
181 
182  default:
183 
184  break;
185  }
186  }
187  catch(Exception $e)
188  {
189  //echo $e->getMessage();
190  }
191 
192  }
193 
195  $template = file_get_contents($err);
196  $out = (!$isAction) ? $log->format($template) : $log->message;
197  echo $out;
198  }
199  catch (Exception $ex)
200  {
201  echo $ex->getMessage();
202  //Do nothing.
203  //Avoiding error from error handling...
204  }
205 
206  /* Don't execute PHP internal error handler */
207  return true;
208  }
$err
Definition: error_log.inc:9
$out
Definition: page.inc:66
static resolveResource($resource, $component="")
Resolves the path to a web resource based on the PHP include path.
Definition: core.inc:850
global $user
if($config["default_content_type"]) $isAction
Definition: core.inc:1584
$uri
Definition: tearoff.inc:4

◆ logError()

static ErrorLogManager::logError (   $exception)
static

Manually log an exception in the error log.

Use this to record an internal error where processing needs to continue without redirection to an error page.

Parameters
Exception$exception

Definition at line 68 of file error_log_manager.inc.

69  {
70  global $user;
71 
72  try
73  {
74  //Getting exception information
75  $errMsg = $exception->getMessage();
76  $errLevel = $exception->getCode();
77  $errFile = $exception->getFile();
78  $errLine = $exception->getLine();
79  $uri = $_SERVER['REQUEST_URI'];
80  $referer = $_SERVER['HTTP_REFERER'];
81 
82  if ($errLevel & (E_NOTICE | E_WARNING | E_USER_WARNING | E_STRICT)) return;
83 
84  $log = new ErrorLog();
85  $log->code = $errLevel;
86  $log->message = $errMsg;
87  $log->file = $errFile;
88  $log->line = $errLine;
89  $log->details = $exception->getTraceAsString();
90  $log->user_id = $user ? $user->get($user->getPrimaryKey()) : 0;
91  $log->uri = $uri;
92  $log->referer = $referer;
93  $log->session = session_id();
94 
96  {
97  try
98  {
100  {
101  case "Database":
102 
103 
104  $log->save();
105 
106  break;
107 
108  case "Log File":
109 
110  trace($errMsg, 2, $exception->getTrace());
111  break;
112 
113  default:
114 
115  break;
116  }
117  }
118  catch(Exception $e)
119  {
120  //echo $e->getMessage();
121  }
122 
123  }
124  }
125  catch (Exception $ex)
126  {
127  echo $ex->getMessage();
128  //Do nothing.
129  //Avoiding error from error handling...
130  }
131 
132  }

◆ setDefaults()

static ErrorLogManager::setDefaults ( )
static

Definition at line 45 of file error_log_manager.inc.

46  {
47  Settings::setDefaultValue("error_log", "enable_logging", 0, Boolean);
48  Settings::setDefaultValue("error_log", "logging_destination", "Database", String, "", "", "Database\nLog File");
49  Settings::setDefaultValue("error_log", "error_page_template", "/fakoli/error.tpl", String,"Specify the file name of your custom error page template, if you are using one. Leave this blank to use the default error reporting template");
50  }
static setDefaultValue($component, $name, $value, $field_type="String", $annotation="", $category="", $options="", $weight=0)
Sets the default value of the given component setting.
Definition: settings.inc:174

◆ upgradeComponent()

static ErrorLogManager::upgradeComponent (   $version)
static

Definition at line 210 of file error_log_manager.inc.

211  {
213  $mgr->upgrade($version);
214  }

Member Data Documentation

◆ $enableLogging

ErrorLogManager::$enableLogging = false
static

Definition at line 41 of file error_log_manager.inc.

◆ $errorPageTemplate

ErrorLogManager::$errorPageTemplate = ""
static

Definition at line 43 of file error_log_manager.inc.

◆ $loggingDestination

ErrorLogManager::$loggingDestination = ""
static

Definition at line 42 of file error_log_manager.inc.


The documentation for this class was generated from the following file: