forked from fossar/selfoss
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLogger.php
More file actions
90 lines (74 loc) · 1.92 KB
/
Logger.php
File metadata and controls
90 lines (74 loc) · 1.92 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
<?PHP
namespace helpers;
define("DEBUG", 5);
define("INFO", 4);
define("NOTICE", 3);
define("WARNING", 2);
define("ERROR", 1);
define("NONE", 0);
/**
* Logger
*
* @package helpers
* @copyright Copyright (c) Tobias Zeising (http://www.aditu.de)
* @license GPLv3 (http://www.gnu.org/licenses/gpl-3.0.html)
* @author Tobias Zeising <tobias.zeising@aditu.de>
*/
class Logger {
/**
* target file
* @var string
*/
private $target;
/**
* max severity level
* @var int
*/
private $severityLimit;
/**
* textual representation of severity levels
* @var array
*/
private $severityText = array(
DEBUG => "Debug",
INFO => "Info",
NOTICE => "Notice",
WARNING => "Warning",
ERROR => "Error",
NONE => "None"
);
/**
* set logger config
*
* @param string $target logfile
* @param int $severity log level
*/
public function __construct($target, $severity = ERROR) {
if(is_string($severity)) {
$text2severity = array_flip(array_map("strtoupper", $this->severityText));
$severity = $text2severity[strtoupper($severity)];
}
$this->target = $target;
$this->severityLimit = $severity;
}
/**
* write log message
*
* @return void
* @param string $message
* @param int $severity
*/
public function log($message, $severity) {
if($severity > $this->severityLimit)
return;
$msg = date("m-d-y") . " " .
date("G:i:s") . " " .
$this->severityText[$severity] . " " .
$message . "\n";
$fileHandle = fopen($this->target, "at+");
if($fileHandle===false)
return;
fwrite($fileHandle, $msg);
fclose($fileHandle);
}
}