1
|
|
|
<?php |
2
|
|
|
namespace Agavi\Logging; |
3
|
|
|
|
4
|
|
|
// +---------------------------------------------------------------------------+ |
5
|
|
|
// | This file is part of the Agavi package. | |
6
|
|
|
// | Copyright (c) 2005-2011 the Agavi Project. | |
7
|
|
|
// | | |
8
|
|
|
// | For the full copyright and license information, please view the LICENSE | |
9
|
|
|
// | file that was distributed with this source code. You can also view the | |
10
|
|
|
// | LICENSE file online at http://www.agavi.org/LICENSE.txt | |
11
|
|
|
// | vi: set noexpandtab: | |
12
|
|
|
// | Local Variables: | |
13
|
|
|
// | indent-tabs-mode: t | |
14
|
|
|
// | End: | |
15
|
|
|
// +---------------------------------------------------------------------------+ |
16
|
|
|
|
17
|
|
|
use Agavi\Core\Context; |
18
|
|
|
use Agavi\Util\ParameterHolder; |
19
|
|
|
|
20
|
|
|
/** |
21
|
|
|
* AgaviLoggerLayout allows you to specify a message layout for log messages. |
22
|
|
|
* |
23
|
|
|
* @package agavi |
24
|
|
|
* @subpackage logging |
25
|
|
|
* |
26
|
|
|
* @author Sean Kerr <[email protected]> |
27
|
|
|
* @copyright Authors |
28
|
|
|
* @copyright The Agavi Project |
29
|
|
|
* |
30
|
|
|
* @since 0.9.0 |
31
|
|
|
* |
32
|
|
|
* @version $Id$ |
33
|
|
|
*/ |
34
|
|
View Code Duplication |
abstract class LoggerLayout extends ParameterHolder |
|
|
|
|
35
|
|
|
{ |
36
|
|
|
/** |
37
|
|
|
* @var Context A Context instance. |
38
|
|
|
*/ |
39
|
|
|
protected $context = null; |
40
|
|
|
|
41
|
|
|
/** |
42
|
|
|
* @var string A message layout. |
43
|
|
|
*/ |
44
|
|
|
protected $layout = null; |
45
|
|
|
|
46
|
|
|
/** |
47
|
|
|
* Initialize the Layout. |
48
|
|
|
* |
49
|
|
|
* @param Context $context A Context instance. |
50
|
|
|
* @param array $parameters An associative array of initialization parameters. |
51
|
|
|
* |
52
|
|
|
* @author Veikko Mäkinen <[email protected]> |
53
|
|
|
* @since 0.10.0 |
54
|
|
|
*/ |
55
|
|
|
public function initialize(Context $context, array $parameters = array()) |
56
|
|
|
{ |
57
|
|
|
$this->context = $context; |
58
|
|
|
$this->parameters = $parameters; |
59
|
|
|
} |
60
|
|
|
|
61
|
|
|
/** |
62
|
|
|
* Retrieve the current application context. |
63
|
|
|
* |
64
|
|
|
* @return Context A Context instance. |
65
|
|
|
* |
66
|
|
|
* @author Sean Kerr <[email protected]> |
67
|
|
|
* @since 0.10.0 |
68
|
|
|
*/ |
69
|
|
|
final public function getContext() |
70
|
|
|
{ |
71
|
|
|
return $this->context; |
72
|
|
|
} |
73
|
|
|
|
74
|
|
|
/** |
75
|
|
|
* Format a message. |
76
|
|
|
* |
77
|
|
|
* @param LoggerMessage $message A Message instance. |
78
|
|
|
* |
79
|
|
|
* @return string A formatted message. |
80
|
|
|
* |
81
|
|
|
* @author Sean Kerr <[email protected]> |
82
|
|
|
* @since 0.9.0 |
83
|
|
|
*/ |
84
|
|
|
abstract function format(LoggerMessage $message); |
|
|
|
|
85
|
|
|
|
86
|
|
|
/** |
87
|
|
|
* Retrieve the message layout. |
88
|
|
|
* |
89
|
|
|
* @return string A message layout. |
90
|
|
|
* |
91
|
|
|
* @author Sean Kerr <[email protected]> |
92
|
|
|
* @since 0.9.0 |
93
|
|
|
*/ |
94
|
|
|
public function getLayout() |
95
|
|
|
{ |
96
|
|
|
return $this->layout; |
97
|
|
|
} |
98
|
|
|
|
99
|
|
|
/** |
100
|
|
|
* Set the message layout. |
101
|
|
|
* |
102
|
|
|
* @param string A message layout. |
103
|
|
|
* |
104
|
|
|
* |
105
|
|
|
* @author Sean Kerr <[email protected]> |
106
|
|
|
* @since 0.9.0 |
107
|
|
|
*/ |
108
|
|
|
public function setLayout($layout) |
109
|
|
|
{ |
110
|
|
|
$this->layout = $layout; |
111
|
|
|
} |
112
|
|
|
} |
113
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.