* * -------------------------------------------- * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * \**************************************************************************/ /* $Id$ */ class log { /***************************\ * Instance Variables... * \***************************/ var $errorstack = array(); var $public_functions = array('message', 'error', 'iserror', 'severity', 'commit', 'clearstack', 'astable', ); function message($etext,$p0='',$p1='',$p2='',$p3='',$p4='',$p5='',$p6='',$p7='',$p8='',$p9='') { $parms = array($p0,$p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8,$p9); CreateObject('phpgwapi.error',$etext,$parms,1); } function error($etext,$p0='',$p1='',$p2='',$p3='',$p4='',$p5='',$p6='',$p7='',$p8='',$p9='') { $parms = array($p0,$p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8,$p9); CreateObject('phpgwapi.error',$etext,$parms,false); } function iserror($ecode) { $errorstack = $this->errorstack; reset($errorstack); while(list(,$err)=each($errorstack)) { if ($ecode == $err->code) { return true; } } return false; } function severity() { $max = 'I'; $errorstack = $this->errorstack; reset($errorstack); while(list(,$err)=each($errorstack)) { switch($err->severity) { case 'F': return 'F'; break; case 'E': $max = 'E'; break; case 'W': if ($max == 'I') { $max = 'W'; } break; } } return $max; } function commit() { global $phpgw, $phpgw_info; $db = $phpgw->db; $db->query ('insert into phpgw_log (log_date, log_user, log_app, log_severity) values ' .'('.time() .','.$phpgw->session->account_id .',"'.$phpgw_info['flags']['currentapp'].'"' .',"'.$this->severity().'"' .')' ,__LINE__,__FILE__); $db->query ('select max(log_id) log_id from phpgw_log',__LINE__,__FILE__); $db->next_record(); $log_id = $db->f('log_id'); $errorstack = $this->errorstack; for ($i = 0; $i < count($errorstack); $i++) { $err = $errorstack[$i]; $db->query ("insert into phpgw_log_msg " ."(log_msg_log_id, log_msg_seq_no, log_msg_date, " ."log_msg_severity, log_msg_code, log_msg_msg, log_msg_parms) values " ."( " . $log_id .", " . $i .", " . $err->timestamp .", '". $err->severity . "'" .", '". $err->code . "'" .", '". $err->msg . "'" .", '". addslashes(implode('|',$err->parms)). "'" .")" ,__LINE__,__FILE__); }; unset ($errorstack); unset ($this->errorstack); $this->errorstack = array(); } function clearstack() { $new = array(); reset($this->errorstack); for ($i = 0; $i < count($this->errorstack); $i++) { $err = $this->errorstack[$i]; if ($err->ismsg) { $new[] = $err; }; } unset ($this->errorstack); $this->errorstack = $new; } function astable() { global $phpgw; $html = "
No | \n"; $html .= "\t\tDate | \n"; $html .= "\t\tApp | \n"; $html .= "\t\tS | \n"; $html .= "\t\tError Code | \n"; $html .= "\t\tMsg | \n"; $html .= "\t
".$i." | \n"; $html .= "\t\t".date('Y.n.d:H.i.s',$err->timestamp)." | \n"; $html .= "\t\t".$phpgw_info['flags']['currentapp']."  | \n"; $html .= "\t\t".$err->severity." | \n"; $html .= "\t\t".$err->code." | \n"; $html .= "\t\t".$err->langmsg()." | \n"; $html .= "\t