Log.inc
2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
define("DEBUG", 0);
define("INFO", 1);
define("ERROR", 2);
/**
* @package lib
*
* $Id$
*
* File logging class
*
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* @version $Revision$
* @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
* @package lib
*/
class Log {
/**
* The minimum logging level- log everything with
* this error level and higher
*/
var $minimumLoggingLevel = INFO;
/**
* The file to log the output to
*/
var $logFile;
function Log($logFile) {
$this->logFile = $logFile;
}
/**
* Default constructor
*
* @param string the path to the logfile to write to
* @param int the desired level to log at
*/
function Log($logFile, $logLevel = INFO) {
$this->logFile = $logFile;
$this->minimumLoggingLevel = $logLevel;
// initialise log file
$this->writeLog("\n-------------------\n" . date("Y-m-d H:i:s",time()) . ":logging started\n-------------------\n", $this->minimumLoggingLevel);
}
/**
* Log a debug entry
*
* @param string the message to write to the log file
*/
function debug($logEntry) {
$this->writeLog($this->prefixEntry($logEntry, "DEBUG"), DEBUG);
}
/**
* Log an info entry
*
* @param string the message to write to the log file
*/
function info($logEntry) {
$this->writeLog($this->prefixEntry($logEntry, " INFO"), INFO);
}
/**
* Log an error entry
*
* @param string the message to write to the log file
*/
function error($logEntry) {
$this->writeLog($this->prefixEntry($logEntry, "ERROR"), ERROR);
}
/**
* Writes to the log file, checking that the log level is within
* the minimum logging level
*
* @param string the message to write to the log file
* @param int the error level to log at
*/
function writeLog($logEntry, $logLevel) {
if ($logLevel >= $this->minimumLoggingLevel) {
if ($fp = fopen($this->logFile, "a")) {
fwrite($fp, $logEntry);
}
fclose($fp);
}
}
/**
* Prefixes the log entry with the current date time, the logging level
* and the page that called it
*
* @param string the message to write to the log file
* @param int the error level to log at
*/
function prefixEntry($logEntry, $logLevel) {
return getCurrentDateTime() . ":$logLevel: $logEntry\n";
}
}
?>