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 name of the logger which created the logging request.
23: *
24: * Takes one option, which is an integer. If the option is given, the logger
25: * name will be shortened to the given length, if possible.
26: *
27: * @package log4php
28: * @subpackage pattern
29: * @version $Revision: 1326626 $
30: * @since 2.3
31: */
32: class LoggerPatternConverterLogger extends LoggerPatternConverter {
33:
34: /** Length to which to shorten the name. */
35: private $length;
36:
37: /** Holds processed logger names. */
38: private $cache = array();
39:
40: public function activateOptions() {
41: // Parse the option (desired output length)
42: if (isset($this->option) && is_numeric($this->option) && $this->option >= 0) {
43: $this->length = (integer) $this->option;
44: }
45: }
46:
47: public function convert(LoggerLoggingEvent $event) {
48: $name = $event->getLoggerName();
49:
50: if (!isset($this->cache[$name])) {
51:
52: // If length is set return shortened logger name
53: if (isset($this->length)) {
54: $this->cache[$name] = LoggerUtils::shortenClassName($name, $this->length);
55: }
56:
57: // If no length is specified return full logger name
58: else {
59: $this->cache[$name] = $name;
60: }
61: }
62:
63: return $this->cache[$name];
64: }
65: }
66: