source: trunk/src/inc/LogHandler.class.php@ 7642

Last change on this file since 7642 was 7637, checked in by Pieter Naber, 15 years ago

Updated ErrorHandler to use our LogHandler. Updated LogHandler with an adjustable error level.

File size: 2.7 KB
Line 
1<?
2/*
3 * Project: NodeMap2.0
4 * File: LogHandler.class.php
5 * Purpose: Handling our log file containing log entries generated by the application
6 */
7
8/*
9 * Log levels:
10 * SYSLOG_EMERG System is unusable
11 * SYSLOG_ALERT Action must be taken immediately
12 * SYSLOG_CRIT Critical conditions
13 * SYSLOG_ERR Error conditions
14 * SYSLOG_WARNING Warning conditions
15 * SYSLOG_NOTICE Normal, but significant, condition
16 * SYSLOG_INFO Informational message
17 * SYSLOG_DEBUG Debug-level message
18 */
19
20define('SYSLOG_NONE', 0);
21define('SYSLOG_EMERG', 1);
22define('SYSLOG_ALERT', 2);
23define('SYSLOG_CRIT', 3);
24define('SYSLOG_ERR', 4);
25define('SYSLOG_WARNING', 5);
26define('SYSLOG_NOTICE', 6);
27define('SYSLOG_INFO', 7);
28define('SYSLOG_DEBUG', 8);
29
30/*
31 * Actions on log levels
32 */
33define('LOG_LEVEL_ECHO', SYSLOG_DEBUG);
34define('LOG_LEVEL_WRITE', SYSLOG_DEBUG);
35define('LOG_LEVEL_MAIL', SYSLOG_DEBUG);
36
37class LogHandler {
38 /*
39 * Function: __construct (constructor)
40 * Parameters: -
41 * Function: Creating a LogHandler object
42 */
43 public function __construct() {
44 }
45
46 /*
47 * Function: logEntry
48 * Parameters: int $logno, string $logstr, string $logfile, int $logline
49 * Function: Handling with log entries, decides what to do with it
50 */
51 public function logEntry($logno, $logstr, $logfile, $logline) {
52 $errorString = 'SysLog ';
53
54 switch ($logno) {
55 case SYSLOG_EMERG:
56 $errorString = 'Emergency';
57 break;
58 case SYSLOG_ALERT:
59 $errorString = 'Alert';
60 break;
61 case SYSLOG_CRIT:
62 $errorString = 'Critical';
63 break;
64 case SYSLOG_ERR:
65 $errorString = 'Error';
66 break;
67 case SYSLOG_WARNING:
68 $errorString = 'Warning';
69 break;
70 case SYSLOG_NOTICE:
71 $errorString = 'Notice';
72 break;
73 case SYSLOG_INFO:
74 $errorString = 'Information';
75 break;
76 case SYSLOG_DEBUG:
77 $errorString = 'Debug';
78 break;
79 default:
80 $errorString = 'SYSLOG_DEFAULT';
81 break;
82 }
83
84 $errorString .= ' (' . $logno . '): ' . $logstr . "\r\n\t" . 'In file "' . $logfile . '" on line "' . $logline . '"' . "\r\n";
85
86 if ($logno <= LOG_LEVEL_ECHO) {
87 echo $errorString;
88 }
89 if ($logno <= LOG_LEVEL_WRITE) {
90 // TODO: Write $errorString to file
91 }
92 if ($logno <= LOG_LEVEL_MAIL) {
93 // TODO: Mail $errorString to administrator
94 }
95 }
96}
97
98$LOG_HANDLER = new LogHandler();
99
100/*
101 * Function: trigger_log
102 * Parameters: int $logno, string $logstr, string $logfile, int $logline
103 * Function: Handling with log entries, forwarding them to our $LOG_HANDLER object.
104 */
105function trigger_log($logno, $logstr, $logfile, $logline) {
106 global $LOG_HANDLER;
107
108 $LOG_HANDLER->logEntry($logno, $logstr, $logfile, $logline);
109}
110?>
Note: See TracBrowser for help on using the repository browser.