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: * Returns the Mapped Diagnostic Context value corresponding to the given key.
23: *
24: * Options:
25: * [0] the MDC key
26: *
27: * @package log4php
28: * @subpackage pattern
29: * @version $Revision: 1326626 $
30: * @since 2.3
31: */
32: class LoggerPatternConverterMDC extends LoggerPatternConverter {
33:
34: private $key;
35:
36: public function activateOptions() {
37: if (isset($this->option) && $this->option !== '') {
38: $this->key = $this->option;
39: }
40: }
41:
42: public function convert(LoggerLoggingEvent $event) {
43: if (isset($this->key)) {
44: return $event->getMDC($this->key);
45: } else {
46: $buff = array();
47: $map = $event->getMDCMap();
48: foreach($map as $key => $value) {
49: $buff []= "$key=$value";
50: }
51: return implode(', ', $buff);
52: }
53: }
54: }
55: