-
Notifications
You must be signed in to change notification settings - Fork 2
/
Logger.php
91 lines (79 loc) · 2.07 KB
/
Logger.php
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
<?php
/*
* This file is part of the PhpGuard project.
*
* (c) Anthonius Munthi <me@itstoni.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PhpGuard\Application\Log;
use Monolog\Logger as BaseLogger;
/**
* Class Logger
*
*/
class Logger extends BaseLogger
{
const COMMON = 301;
const SUCCESS = 302;
/**
* Command fail
*
* Examples: failed to run PHPUnit test
*/
const FAIL = 303;
/**
* Logging levels from syslog protocol defined in RFC 5424
*
* @var array $levels Logging levels
*/
protected static $levels = array(
100 => 'DEBUG',
200 => 'INFO',
250 => 'NOTICE',
300 => 'WARNING',
301 => 'COMMON',
302 => 'SUCCESS',
303 => 'FAIL',
400 => 'ERROR',
500 => 'CRITICAL',
550 => 'ALERT',
600 => 'EMERGENCY',
);
public function addCommon($message,array $context=array())
{
return $this->addRecord(static::COMMON,$message,$context);
}
public function addSuccess($message,array $context=array())
{
return $this->addRecord(static::SUCCESS,$message,$context);
}
public function addFail($message,array $context=array())
{
return $this->addRecord(static::FAIL,$message,$context);
}
/**
* Adds a log record
* @param int $level
* @param string $message
* @param array $context
*
* @return bool
*/
public function addRecord($level, $message, array $context = array())
{
$replacement = array();
foreach ($context as $key=>$value) {
if (!is_array($value)) {
$rkey = '%'.$key.'%';
$replacement[$rkey] = $value;
if (false!==strpos($message,$rkey)) {
unset($context[$key]);
}
}
}
$message = strtr($message,$replacement);
return parent::addRecord($level, $message, $context);
}
}