Commit 69fe72857034e134c8ce37ce85ecc069caad6f9d

Authored by nbm
1 parent c6c75cb4

Rename the legacy log class for the legacy log.

Introduce a PEAR Log instance to log all PHP errors.

Log all PHP errors to the PEAR Log instance.

Optionally, if default->developmentLogWindow is set, log all PHP errors
to a Javascript window.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3152 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 51 additions and 7 deletions
config/dmsDefaults.php
... ... @@ -61,21 +61,31 @@ class KTInit {
61 61 function setupLogging () {
62 62 global $default;
63 63 require_once("$default->fileSystemRoot/lib/Log.inc");
64   - $default->log = new Log($default->fileSystemRoot . "/log", $default->logLevel);
  64 + $default->log = new KTLegacyLog($default->fileSystemRoot . "/log", $default->logLevel);
65 65 $res = $default->log->initialiseLogFile();
66 66 if (PEAR::isError($res)) {
67 67 KTInit::handleInitError($res);
68 68 }
69   - $default->queryLog = new Log($default->fileSystemRoot . "/log", $default->logLevel, "query");
  69 + $default->queryLog = new KTLegacyLog($default->fileSystemRoot . "/log", $default->logLevel, "query");
70 70 $res = $default->queryLog->initialiseLogFile();
71 71 if (PEAR::isError($res)) {
72 72 KTInit::handleInitError($res);
73 73 }
74   - $default->timerLog = new Log($default->fileSystemRoot . "/log", $default->logLevel, "timer");
  74 + $default->timerLog = new KTLegacyLog($default->fileSystemRoot . "/log", $default->logLevel, "timer");
75 75 $res = $default->timerLog->initialiseLogFile();
76 76 if (PEAR::isError($res)) {
77 77 KTInit::handleInitError($res);
78 78 }
  79 +
  80 + require_once("Log.php");
  81 + $default->phpErrorLog =& Log::factory('composite');
  82 + $fileLog =& Log::factory('file', $default->fileSystemRoot . "/log/php_error_log", 'BLAH');
  83 + $default->phpErrorLog->addChild($fileLog);
  84 +
  85 + if ($default->developmentWindowLog) {
  86 + $windowLog =& Log::factory('win', 'LogWindow', 'BLAH');
  87 + $default->phpErrorLog->addChild($windowLog);
  88 + }
79 89 }
80 90 // }}}
81 91  
... ... @@ -206,12 +216,39 @@ class KTInit {
206 216 die($oError->toString());
207 217 }
208 218 // }}}
  219 +
  220 + // {{{ handlePHPError()
  221 + function handlePHPError($code, $message, $file, $line) {
  222 + global $default;
  223 +
  224 + /* Map the PHP error to a Log priority. */
  225 + switch ($code) {
  226 + case E_WARNING:
  227 + case E_USER_WARNING:
  228 + $priority = PEAR_LOG_WARNING;
  229 + break;
  230 + case E_NOTICE:
  231 + case E_USER_NOTICE:
  232 + $priority = PEAR_LOG_NOTICE;
  233 + break;
  234 + case E_ERROR:
  235 + case E_USER_ERROR:
  236 + $priority = PEAR_LOG_ERR;
  237 + break;
  238 + default:
  239 + $priotity = PEAR_LOG_INFO;
  240 + }
  241 +
  242 + $default->phpErrorLog->log($message . ' in ' . $file . ' at line ' . $line, $priority);
  243 + return false;
  244 + }
  245 + // }}}
209 246 }
210 247 // }}}
211 248  
212 249 // Application defaults
213 250 //
214   -// Overriden in environment.php
  251 +// Overridden in environment.php
215 252  
216 253 $default->fileSystemRoot = KT_DIR;
217 254 $default->serverName = $_SERVER['HTTP_HOST'];
... ... @@ -221,11 +258,21 @@ $default->unzipCommand = "unzip";
221 258 $default->logLevel = 'INFO';
222 259  
223 260 $default->useDatabaseConfiguration = false;
  261 +$default->developmentWindowLog = false;
224 262  
225 263 // include the environment settings
226 264 require_once("environment.php");
227 265  
  266 +
228 267 KTInit::prependPath(KT_DIR . '/pear');
  268 +require_once('PEAR.php');
  269 +
  270 +// instantiate log
  271 +KTInit::setupLogging();
  272 +
  273 +// Send all PHP errors to a file (and maybe a window)
  274 +set_error_handler(array('KTInit', 'handlePHPError'));
  275 +
229 276 KTInit::setupDB();
230 277 KTInit::setupRandomSeed();
231 278  
... ... @@ -253,9 +300,6 @@ if ($default->useDatabaseConfiguration && $default->system->initialised()) {
253 300 // table mapping entries
254 301 include("tableMappings.inc");
255 302  
256   -// instantiate log
257   -KTInit::setupLogging();
258   -
259 303 KTInit::setupI18n();
260 304  
261 305 KTInit::cleanGlobals();
... ...