Commit 31a22ac19a6cac0388d52dad4c745a4e9839bdfb

Authored by nbm
1 parent 1e905c35

Handle startup errors slightly better - at least show them and stop

trying to continue on regardless.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3107 c91229c3-7414-0410-bfa2-8a42b809f60b
config/dmsDefaults.php
... ... @@ -62,7 +62,14 @@ class KTInit {
62 62 global $default;
63 63 require_once("$default->fileSystemRoot/lib/Log.inc");
64 64 $default->log = new Log($default->fileSystemRoot . "/log", $default->logLevel);
  65 + $res = $default->log->initialiseLogFile();
  66 + KTInit::handleInitError($res);
  67 + $default->queryLog = new Log($default->fileSystemRoot . "/log", $default->logLevel, "query");
  68 + $res = $default->queryLog->initialiseLogFile();
  69 + KTInit::handleInitError($res);
65 70 $default->timerLog = new Log($default->fileSystemRoot . "/log", $default->logLevel, "timer");
  71 + $res = $default->timerLog->initialiseLogFile();
  72 + KTInit::handleInitError($res);
66 73 }
67 74 // }}}
68 75  
... ... @@ -97,8 +104,8 @@ class KTInit {
97 104 }
98 105 // }}}
99 106  
100   - // {{{ setupDb()
101   - function setupDb () {
  107 + // {{{ setupDB()
  108 + function setupDB () {
102 109 global $default;
103 110  
104 111 require_once("DB.php");
... ... @@ -118,6 +125,10 @@ class KTInit {
118 125 );
119 126  
120 127 $default->_db = &DB::connect($dsn, $options);
  128 + if (PEAR::isError($default->_db)) {
  129 + KTInit::handleInitError($default->_db);
  130 + // never returns
  131 + }
121 132 $default->_db->setFetchMode(DB_FETCHMODE_ASSOC);
122 133  
123 134 // DBCompat allows phplib API compatibility
... ... @@ -160,6 +171,7 @@ class KTInit {
160 171 KTInit::cleanMagicQuotesItem($var[$key]);
161 172 }
162 173 } else {
  174 + // XXX: Make it look pretty
163 175 $var = stripslashes($var);
164 176 }
165 177 }
... ... @@ -181,6 +193,13 @@ class KTInit {
181 193 mt_srand(hexdec(substr(md5(microtime()), -8)) & 0x7fffffff);
182 194 }
183 195 // }}}
  196 +
  197 + // {{{ handleInitError()
  198 + function handleInitError($oError) {
  199 + // XXX: Make it look pretty
  200 + die($oError->toString());
  201 + }
  202 + // }}}
184 203 }
185 204 // }}}
186 205  
... ...
lib/Log.inc
... ... @@ -56,22 +56,28 @@ class Log {
56 56 function Log($logDirectory, $logLevel = INFO, $sLogFilePrefix = "log") {
57 57 $this->logDirectory = $logDirectory;
58 58 $this->minimumLoggingLevel = $logLevel;
59   - $this->initialiseLogFile($sLogFilePrefix);
  59 + $this->sLogFilePrefix = $sLogFilePrefix;
60 60 }
61 61  
62 62  
63 63 /**
64 64 * Creates the log file from the current datetime
65 65 */
66   - function initialiseLogFile($sLogFilePrefix) {
  66 + function initialiseLogFile() {
67 67 global $default;
68 68 if (!file_exists($this->logDirectory)) {
69   - mkdir($this->logDirectory, 0755);
  69 + $res = @mkdir($this->logDirectory, 0755);
  70 + if ($res === false) {
  71 + return new PEAR_Error('Failed to create log directory (check permissions)');
  72 + }
70 73 }
71 74  
72   - $this->logFile = $this->logDirectory . "/$sLogFilePrefix-" . date("Y-m-d") . ".txt";
  75 + $this->logFile = $this->logDirectory . "/" . $this->sLogFilePrefix . "-" . date("Y-m-d") . ".txt";
73 76 if (!file_exists($this->logFile)) {
74   - touch($this->logFile);
  77 + $res = @touch($this->logFile);
  78 + if ($res === false) {
  79 + return new PEAR_Error('Failed to create log file (check permissions)');
  80 + }
75 81 }
76 82 }
77 83  
... ...