* * -------------------------------------------- * * 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' ); var $log_table = 'egw_log'; var $msg_table = 'egw_log_msg'; 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() { $db = clone($GLOBALS['egw']->db); $db->query("insert into $this->log_table (log_date, log_user, log_app, log_severity) values " ."('". $GLOBALS['egw']->db->to_timestamp(time()) ."','".$GLOBALS['egw']->session->account_id ."','".$GLOBALS['egw_info']['flags']['currentapp']."'" .",'".$this->severity()."'" .")" ,__LINE__,__FILE__); $errorstack = $this->errorstack; for ($i = 0; $i < count($errorstack); $i++) { $err = $errorstack[$i]; $db->query("insert into $this->msg_table " . "(log_msg_seq_no, log_msg_date, " . "log_msg_severity, log_msg_code, log_msg_msg, log_msg_parms) values " . "(" . $i . ", '" . $GLOBALS['egw']->db->to_timestamp($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() { $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".$GLOBALS['egw']->common->show_date($err->timestamp)." | \n"; $html .= "\t\t".$GLOBALS['egw_info']['flags']['currentapp']."  | \n"; $html .= "\t\t".$err->severity." | \n"; $html .= "\t\t".$err->code." | \n"; $html .= "\t\t".$err->langmsg()." | \n"; $html .= "\t