This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
spkitlasso/include/lassospkit_debug.inc.php

75 lines
3.1 KiB
PHP

<?php
require_once('lassospkit_config.inc.php');
libxml_use_internal_errors(true);
error_reporting(E_ALL);
function lassospkit_debuglog($msg, $level = 0) {
if (! is_string($msg)) {
$msg = var_export($msg, 1);
}
$lassospkit_debug_level = LassoSPKitConfig::get('debug');
if ($level <= $lassospkit_debug_level) {
openlog("LassoPHP.SP.Kit", LOG_PID, LOG_AUTHPRIV);
$msgs = explode("\n",$msg);
foreach ($msgs as $msg) {
syslog(LOG_DEBUG, $msg);
}
closelog();
}
}
function lassospkit_errlog($msg) {
openlog("LassoPHP.SP.Kit", LOG_PID, LOG_AUTHPRIV);
syslog(LOG_ERR, $msg);
closelog();
}
function lassospkit_infolog($msg) {
openlog("LassoPHP.SP.Kit", LOG_PID, LOG_AUTHPRIV);
syslog(LOG_INFO, $msg);
closelog();
}
function lassospkit_showCode($code) {
echo '<pre class="code">';
echo htmlspecialchars($code);
echo '</pre>';
}
//set_error_handler("my_error_handler", E_ALL);
function my_error_handler($errno, $errstr, $errfile, $errline){
$errno = $errno & error_reporting();
if($errno == 0) return;
if(!defined('E_STRICT')) define('E_STRICT', 2048);
if(!defined('E_RECOVERABLE_ERROR')) define('E_RECOVERABLE_ERROR', 4096);
switch($errno){
case E_ERROR: lassospkit_debuglog( "Error"); break;
case E_WARNING: lassospkit_debuglog( "Warning"); break;
case E_PARSE: lassospkit_debuglog( "Parse Error"); break;
case E_NOTICE: lassospkit_debuglog( "Notice"); break;
case E_CORE_ERROR: lassospkit_debuglog( "Core Error"); break;
case E_CORE_WARNING: lassospkit_debuglog( "Core Warning"); break;
case E_COMPILE_ERROR: lassospkit_debuglog( "Compile Error"); break;
case E_COMPILE_WARNING: lassospkit_debuglog( "Compile Warning"); break;
case E_USER_ERROR: lassospkit_debuglog( "User Error"); break;
case E_USER_WARNING: lassospkit_debuglog( "User Warning"); break;
case E_USER_NOTICE: lassospkit_debuglog( "User Notice"); break;
case E_STRICT: lassospkit_debuglog( "Strict Notice"); break;
case E_RECOVERABLE_ERROR: lassospkit_debuglog( "Recoverable Error"); break;
default: lassospkit_debuglog( "Unknown error ($errno)"); break;
}
lassospkit_debuglog( ": $errstr in $errfile on line $errline\n");
if(function_exists('debug_backtrace')){
$backtrace = debug_backtrace();
array_shift($backtrace);
foreach($backtrace as $i=>$l){
lassospkit_debuglog( "[$i] in function {$l['class']}{$l['type']}{$l['function']}");
if($l['file']) lassospkit_debuglog( " in {$l['file']}");
if($l['line']) lassospkit_debuglog( " on line {$l['line']}");
lassospkit_debuglog( "\n");
}
}
if(isset($GLOBALS['error_fatal'])){
if($GLOBALS['error_fatal'] & $errno) die('fatal');
}
}