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: * The LoggerMDC class provides _mapped diagnostic contexts_.
23: *
24: * A Mapped Diagnostic Context, or MDC in short, is an instrument for
25: * distinguishing interleaved log output from different sources. Log output
26: * is typically interleaved when a server handles multiple clients
27: * near-simultaneously.
28: *
29: * This class is similar to the {@link LoggerNDC} class except that
30: * it is based on a map instead of a stack.
31: *
32: * @version $Revision: 1343630 $
33: * @since 0.3
34: * @package log4php
35: */
36: class LoggerMDC {
37:
38: /** Holds the context map. */
39: private static $map = array();
40:
41: /**
42: * Stores a context value as identified with the key parameter into the
43: * context map.
44: *
45: * @param string $key the key
46: * @param string $value the value
47: */
48: public static function put($key, $value) {
49: self::$map[$key] = $value;
50: }
51:
52: /**
53: * Returns the context value identified by the key parameter.
54: *
55: * @param string $key The key.
56: * @return string The context or an empty string if no context found
57: * for given key.
58: */
59: public static function get($key) {
60: return isset(self::$map[$key]) ? self::$map[$key] : '';
61: }
62:
63: /**
64: * Returns the contex map as an array.
65: * @return array The MDC context map.
66: */
67: public static function getMap() {
68: return self::$map;
69: }
70:
71: /**
72: * Removes the the context identified by the key parameter.
73: *
74: * Only affects user mappings, not $_ENV or $_SERVER.
75: *
76: * @param string $key The key to be removed.
77: */
78: public static function remove($key) {
79: unset(self::$map[$key]);
80: }
81:
82: /**
83: * Clears the mapped diagnostic context.
84: */
85: public static function clear() {
86: self::$map = array();
87: }
88: }
89: