package WebGUI::ErrorHandler; #------------------------------------------------------------------- # WebGUI is Copyright 2001-2002 Plain Black LLC. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- use FileHandle; use WebGUI::Session; #------------------------------------------------------------------- sub audit { my ($log, $data); $log = FileHandle->new(">>".$session{config}{logfile}) or fatalError("Can't open log file for audit."); $data = localtime(time)." ".$0." AUDIT: ".$session{user}{username}." (".$session{user}{userId}.") ".$_[0]."\n"; print $log $data; $session{debug}{audit} .= $data."
"; $log->close; } #------------------------------------------------------------------- sub fatalError { my ($key, $log, $cgi, $logfile, $config); if (exists $session{cgi}) { $cgi = $session{cgi}; print WebGUI::Session::httpHeader(); } else { use CGI; $cgi = CGI->new; print $cgi->header; } if (exists $session{config}{logfile}) { $logfile = $session{config}{logfile}; } else { use Data::Config; $config = new Data::Config '../etc/WebGUI.conf'; $logfile = $config->param('logfile'); } print "
" if ($session{setting}{showDebug}); $log = FileHandle->new(">>$logfile") or print "Can't open log file: ".$logfile ."\n
Check your WebGUI configuration file to set the path of the log file,
and check to be sure the web server has the privileges to write to the log file.";
print $0." at ".localtime(time)." reported:
" if ($session{setting}{showDebug});
print $log localtime(time)." ".$0." FATAL: ".$_[0]."\n";
print $_[0] if ($session{setting}{showDebug});
print "
| " if ($session{setting}{showDebug});
print "Level 1 ".join(" ",caller(1)) if ($session{setting}{showDebug}); print $log "\t".join(",",caller(1))."\n"; print " | "."Level 2 ".join(" ",caller(2)) if ($session{setting}{showDebug}); print $log "\t".join(",",caller(2))."\n"; print " | "."Level 3 ".join(" ",caller(3)) if ($session{setting}{showDebug}); print $log "\t".join(",",caller(3))."\n"; print " | "."Level 4 ".join(" ",caller(4)) if ($session{setting}{showDebug}); print $log "\t".join(",",caller(4))."\n"; print " |
| '.$section.'.'.$key.': | '.$value.' | '; } print '
|   |
"; $log->close; } 1;