63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| $_context_log = null;
 | |
| 
 | |
| function ctx_set_log($name) {
 | |
| 	global $_context_log;
 | |
| 	if($name) {
 | |
| 		$_context_log = fopen($name, "a");
 | |
| 	}
 | |
| 	else {
 | |
| 		$_context_log = null;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function ctx_log_msg($func, $text, $type) {
 | |
| 	global $_context_log;
 | |
| 	if($_context_log) {
 | |
|         fprintf(
 | |
| 			$_context_log,
 | |
| 			"%f %s %d %d %s %s %s\n",
 | |
|             microtime(true), # returning a float is 5.0+
 | |
|             php_uname('n'),  # gethostname() is 5.3+
 | |
| 			posix_getpid(),
 | |
| 			posix_getpid(), //gettid(),
 | |
|             $type, $func, $text
 | |
|         );
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function __get_func() {
 | |
| 	$stack = debug_backtrace();
 | |
| 	if(count($stack) < 3) {
 | |
| 		return "top-level";
 | |
| 	}
 | |
| 	$p = $stack[2];
 | |
| 	return $p['function'];
 | |
| }
 | |
| 
 | |
| function ctx_log_bmark($text=null) {ctx_log_msg(__get_func(), $text, "BMARK");}
 | |
| function ctx_log_clear($text=null) {ctx_log_msg(__get_func(), $text, "CLEAR");}
 | |
| 
 | |
| function ctx_log_start($text=null, $bookmark=false, $clear=false) {
 | |
| 	if($clear) {
 | |
| 		ctx_log_msg(__get_func(), $text, "CLEAR");
 | |
| 	}
 | |
| 	if($bookmark) {
 | |
| 		ctx_log_msg(__get_func(), $text, "BMARK");
 | |
| 	}
 | |
| 	ctx_log_msg(__get_func(), $text, "START");
 | |
| }
 | |
| function ctx_log_endok($text=null, $clear=false) {
 | |
| 	ctx_log_msg(__get_func(), $text, "ENDOK");
 | |
| 	if($clear) {
 | |
| 		ctx_log_msg(__get_func(), $text, "ENDER");
 | |
| 	}
 | |
| }
 | |
| function ctx_log_ender($text=null, $clear=false) {
 | |
| 	ctx_log_msg(__get_func(), $text, "ENDER");
 | |
| 	if($clear) {
 | |
| 		ctx_log_msg(__get_func(), $text, "ENDER");
 | |
| 	}
 | |
| }
 | |
| ?>
 |