- /**
- * Print a timestamped debug message.
- *
- * @param string $msg The debug message.
- * @return void
- */
- function _debug($msg, $show = true) {
- global $suppress_debugging;
-
- //echo "[$suppress_debugging] $msg $show\n";
-
- if ($suppress_debugging) return false;
-
- $ts = strftime("%H:%M:%S", time());
- if (function_exists('posix_getpid')) {
- $ts = "$ts/" . posix_getpid();
- }
-
- if ($show && !(defined('QUIET') && QUIET)) {
- print "[$ts] $msg\n";
- }
-
- if (defined('LOGFILE')) {
- $fp = fopen(LOGFILE, 'a+');
-
- if ($fp) {
- $locked = false;
-
- if (function_exists("flock")) {
- $tries = 0;
-
- // try to lock logfile for writing
- while ($tries < 5 && !$locked = flock($fp, LOCK_EX | LOCK_NB)) {
- sleep(1);
- ++$tries;
- }
-
- if (!$locked) {
- fclose($fp);
- return;
- }
- }
-
- fputs($fp, "[$ts] $msg\n");
-
- if (function_exists("flock")) {
- flock($fp, LOCK_UN);
- }
-
- fclose($fp);
- }
- }
-
- } // function _debug
-