-
Notifications
You must be signed in to change notification settings - Fork 66
Expand file tree
/
Copy pathLogger.php
More file actions
61 lines (54 loc) · 1.26 KB
/
Logger.php
File metadata and controls
61 lines (54 loc) · 1.26 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
<?php
namespace TE\Helper;
/**
* Logger
*
* @copyright Copyright (c) 2012 Typecho Team. (http://typecho.org)
* @author Joyqi <magike.net@gmail.com>
* @license GNU General Public License 2.0
*/
class Logger
{
/**
* _dir
*
* @var mixed
* @access private
*/
private $_dir;
/**
* 以某个目录作为根节点
*
* @param $dir 目录路径
*/
public function __construct($dir)
{
if (!in_array(substr($dir, -1), array("/", "\\"))) {
$dir .= DIRECTORY_SEPARATOR;
}
$this->_dir = $dir;
}
/**
* __call
*
* @param mixed $name
* @param array $args
* @access public
* @return void
*/
public function __call($name, array $args)
{
$stack = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 1);
$caller = $stack[0];
$message = $args[0];
$log = date('c') . ' - ' . $caller['file'] . '[' . $caller['line'] . ']';
if (is_array($message)) {
foreach ($message as $key => $val) {
$log .= ' [' . $key . ':' . $val . ']';
}
} else {
$log .= ' ' . $message;
}
error_log($log . "\n", 3, $this->_dir . $name . '.log');
}
}