| Code Coverage
| Classes and Traits | Functions and Methods | Lines
Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 13 | CRAP |  | 55.56% | 25 / 45
LoggerLayoutTTCC |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 13 | 50.69 |  | 55.56% | 25 / 45
__construct($dateFormat = '') |  | 0.00% | 0 / 1 | 2.26 |  | 60.00% | 3 / 5
setThreadPrinting($threadPrinting) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2
getThreadPrinting() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
setCategoryPrefixing($categoryPrefixing) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2
getCategoryPrefixing() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
setContextPrinting($contextPrinting) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2
getContextPrinting() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
setMicroSecondsPrinting($microSecondsPrinting) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2
getMicroSecondsPrinting() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
setDateFormat($dateFormat) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2
getDateFormat() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
format(LoggerLoggingEvent $event) |  | 0.00% | 0 / 1 | 6.02 |  | 91.67% | 22 / 24
ignoresThrowable() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1

1 | <?php
2 | /**
3 | * Licensed to the Apache Software Foundation (ASF) under one or more
4 | * contributor license agreements. See the NOTICE file distributed with
5 | * this work for additional information regarding copyright ownership.
6 | * The ASF licenses this file to You under the Apache License, Version 2.0
7 | * (the "License"); you may not use this file except in compliance with
8 | * the License. You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | *
18 | * @package log4php
19 | */
20 |
21 | /**
22 | * TTCC layout format consists of <b>t</b>ime, <b>t</b>hread, <b>c</b>ategory and nested
23 | * diagnostic <b>c</b>ontext information, hence the name.
24 | *
25 | * <p>Each of the four fields can be individually enabled or
26 | * disabled. The time format depends on the <b>DateFormat</b> used.</p>
27 | *
28 | * <p>If no dateFormat is specified it defaults to '%c'.
29 | * See php {@link PHP_MANUAL#date} function for details.</p>
30 | *
31 | * Configurable parameters for this layout are:
32 | * - {@link $threadPrinting} (true|false) enable/disable pid reporting.
33 | * - {@link $categoryPrefixing} (true|false) enable/disable logger category reporting.
34 | * - {@link $contextPrinting} (true|false) enable/disable NDC reporting.
35 | * - {@link $microSecondsPrinting} (true|false) enable/disable micro seconds reporting in timestamp.
36 | * - {@link $dateFormat} (string) set date format. See php {@link PHP_MANUAL#date} function for details.
37 | *
38 | * An example how to use this layout:
39 | *
40 | * {@example ../../examples/php/layout_ttcc.php 19}<br>
41 | *
42 | * {@example ../../examples/resources/layout_ttcc.properties 18}<br>
43 | *
44 | * The above would print:<br>
45 | * <samp>02:28 [13714] INFO root - Hello World!</samp>
46 | *
47 | * @version $Revision: 1302503 $
48 | * @package log4php
49 | * @subpackage layouts
50 | *
51 | * @deprecated LoggerLayout TTCC is deprecated and will be removed in a future release. Please use
52 | * LoggerLayoutPattern instead.
53 | */
54 | class LoggerLayoutTTCC extends LoggerLayout {
55 |
56 | // Internal representation of options
57 | protected $threadPrinting = true;
58 | protected $categoryPrefixing = true;
59 | protected $contextPrinting = true;
60 | protected $microSecondsPrinting = true;
61 |
62 | /**
63 | * @var string date format. See {@link PHP_MANUAL#strftime} for details
64 | */
65 | protected $dateFormat = '%c';
66 |
67 | /**
68 | * Constructor
69 | *
70 | * @param string date format
71 | * @see dateFormat
72 | */
73 | public function __construct($dateFormat = '') {
74 | $this->warn("LoggerLayout TTCC is deprecated and will be removed in a future release. Please use LoggerLayoutPattern instead.");
75 | if (!empty($dateFormat)) {
76 | $this->dateFormat = $dateFormat;
77 | }
78 | return;
79 | }
80 |
81 | /**
82 | * The <b>ThreadPrinting</b> option specifies whether the name of the
83 | * current thread is part of log output or not. This is true by default.
84 | */
85 | public function setThreadPrinting($threadPrinting) {
86 | $this->setBoolean('threadPrinting', $threadPrinting);
87 | }
88 |
89 | /**
90 | * @return boolean Returns value of the <b>ThreadPrinting</b> option.
91 | */
92 | public function getThreadPrinting() {
93 | return $this->threadPrinting;
94 | }
95 |
96 | /**
97 | * The <b>CategoryPrefixing</b> option specifies whether {@link Category}
98 | * name is part of log output or not. This is true by default.
99 | */
100 | public function setCategoryPrefixing($categoryPrefixing) {
101 | $this->setBoolean('categoryPrefixing', $categoryPrefixing);
102 | }
103 |
104 | /**
105 | * @return boolean Returns value of the <b>CategoryPrefixing</b> option.
106 | */
107 | public function getCategoryPrefixing() {
108 | return $this->categoryPrefixing;
109 | }
110 |
111 | /**
112 | * The <b>ContextPrinting</b> option specifies log output will include
113 | * the nested context information belonging to the current thread.
114 | * This is true by default.
115 | */
116 | public function setContextPrinting($contextPrinting) {
117 | $this->setBoolean('contextPrinting', $contextPrinting);
118 | }
119 |
120 | /**
121 | * @return boolean Returns value of the <b>ContextPrinting</b> option.
122 | */
123 | public function getContextPrinting() {
124 | return $this->contextPrinting;
125 | }
126 |
127 | /**
128 | * The <b>MicroSecondsPrinting</b> option specifies if microseconds infos
129 | * should be printed at the end of timestamp.
130 | * This is true by default.
131 | */
132 | public function setMicroSecondsPrinting($microSecondsPrinting) {
133 | $this->setBoolean('microSecondsPrinting', $microSecondsPrinting);
134 | }
135 |
136 | /**
137 | * @return boolean Returns value of the <b>MicroSecondsPrinting</b> option.
138 | */
139 | public function getMicroSecondsPrinting() {
140 | return $this->microSecondsPrinting;
141 | }
142 |
143 |
144 | public function setDateFormat($dateFormat) {
145 | $this->setString('dateFormat', $dateFormat);
146 | }
147 |
148 | /**
149 | * @return string
150 | */
151 | public function getDateFormat() {
152 | return $this->dateFormat;
153 | }
154 |
155 | /**
156 | * In addition to the level of the statement and message, the
157 | * returned string includes time, thread, category.
158 | * <p>Time, thread, category are printed depending on options.
159 | *
160 | * @param LoggerLoggingEvent $event
161 | * @return string
162 | */
163 | public function format(LoggerLoggingEvent $event) {
164 | $timeStamp = (float)$event->getTimeStamp();
165 | $format = strftime($this->dateFormat, (int)$timeStamp);
166 |
167 | if ($this->microSecondsPrinting) {
168 | $usecs = floor(($timeStamp - (int)$timeStamp) * 1000);
169 | $format .= sprintf(',%03d', $usecs);
170 | }
171 |
172 | $format .= ' ';
173 |
174 | if ($this->threadPrinting) {
175 | $format .= '['.getmypid().'] ';
176 | }
177 |
178 | $level = $event->getLevel();
179 | $format .= $level.' ';
180 |
181 | if($this->categoryPrefixing) {
182 | $format .= $event->getLoggerName().' ';
183 | }
184 |
185 | if($this->contextPrinting) {
186 | $ndc = $event->getNDC();
187 | if($ndc != null) {
188 | $format .= $ndc.' ';
189 | }
190 | }
191 |
192 | $format .= '- '.$event->getRenderedMessage();
193 | $format .= PHP_EOL;
194 |
195 | return $format;
196 | }
197 |
198 | public function ignoresThrowable() {
199 | return true;
200 | }
201 | }