source: pmb4.2/trunk/fuentes/pmb/includes/error_handler.inc.php @ 828

Last change on this file since 828 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: error_handler.inc.php,v 1.5 2007-03-10 09:46:47 touraine37 Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// error_handler pour PMB
10
11// fonction interne de gestion des erreurs
12function internal_error_handler( $errno, $errmsg, $filename, $linenum, $vars) {
13
14        // fichier de log
15        global $logfile;
16
17        // choses à surveiller
18        global $logged_errors;
19
20        // date de l'erreur
21        $dt = date("Y-m-d H:i:s");
22
23        // définition des types d'erreurs
24        $error_type = array(
25                                1       =>      'error',
26                                2       =>      'warning',
27                                4       =>      'parsing error',
28                                8       =>      'notice',
29                                16      =>      'core error',
30                                32      =>      'core warning',
31                                64      =>      'compile error',
32                                128     =>      'compile warning',
33                                256     =>      'user error',
34                                512     =>      'user warning',
35                                1024    =>      'user notice'
36                                );
37
38
39        if(in_array($errno, $logged_errors)) {
40
41                // composition du message d'erreur
42
43                $err = '<errorentry>';
44                $err .= "<datetime>$dt</datetime>";
45                $err .= "<errornum>$errno</errornum>";
46                $err .= "<errortype>$error_type[$errno]</errortype>";
47                $err .= "<errormsg>$errmsg</errormsg>";
48                $err .= "<scriptname>$filename</scriptname>";
49                $err .= "<scriptlinenum>$linenum</scriptlinenum>";
50                $err .= '</errorentry>';
51
52                // écriture de l'erreur dans le fichier
53
54                error_log($err, 3, $logfile);
55        }
56}
57
58
59switch($loglevel) {
60        case 'unstable':
61                $logged_errors = array(
62                                                                E_ERROR,
63                                                                E_WARNING,
64                                                                E_PARSE,
65                                                                E_NOTICE,
66                                                                E_CORE_ERROR,
67                                                                E_CORE_WARNING,
68                                                                E_COMPILE_ERROR,
69                                                                E_COMPILE_WARNING,
70                                                                E_USER_ERROR,
71                                                                E_USER_WARNING,
72                                                                E_USER_NOTICE);
73                // on prend la main sur le gestionnaire d'erreurs
74                error_reporting(0);
75                // mise en place du nouveau gestionnaire
76                $old_error_handler = set_error_handler("internal_error_handler");
77                break;
78        case 'off':
79                break;
80        default:
81                $logged_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
82                // on prend la main sur le gestionnaire d'erreurs
83                error_reporting(0);
84                // mise en place du nouveau gestionnaire
85                $old_error_handler = set_error_handler("internal_error_handler");
86                break;
87}
88
89
Note: See TracBrowser for help on using the repository browser.