| Code Coverage
| Classes and Traits | Functions and Methods | Lines
Total |  | 0.00% | 0 / 1 |  | 83.33% | 5 / 6 | CRAP |  | 91.67% | 11 / 12
LoggerLocationInfo |  | 0.00% | 0 / 1 |  | 83.33% | 5 / 6 | 15.13 |  | 91.67% | 11 / 12
__construct($trace, $fqcn = null) |  | 100.00% | 1 / 1 | 5 |  | 100.00% | 7 / 7
getClassName() |  | 100.00% | 1 / 1 | 2 |  | 100.00% | 1 / 1
getFileName() |  | 100.00% | 1 / 1 | 2 |  | 100.00% | 1 / 1
getLineNumber() |  | 100.00% | 1 / 1 | 2 |  | 100.00% | 1 / 1
getMethodName() |  | 100.00% | 1 / 1 | 2 |  | 100.00% | 1 / 1
getFullInfo() |  | 0.00% | 0 / 1 | 6 |  | 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 | * The internal representation of caller location information.
23 | *
24 | * @version $Revision: 1379738 $
25 | * @package log4php
26 | * @since 0.3
27 | */
28 | class LoggerLocationInfo {
29 |
30 | /** The value to return when the location information is not available. */
31 | const LOCATION_INFO_NA = 'NA';
32 |
33 | /**
34 | * Caller line number.
35 | * @var integer
36 | */
37 | protected $lineNumber;
38 |
39 | /**
40 | * Caller file name.
41 | * @var string
42 | */
43 | protected $fileName;
44 |
45 | /**
46 | * Caller class name.
47 | * @var string
48 | */
49 | protected $className;
50 |
51 | /**
52 | * Caller method name.
53 | * @var string
54 | */
55 | protected $methodName;
56 |
57 | /**
58 | * All the information combined.
59 | * @var string
60 | */
61 | protected $fullInfo;
62 |
63 | /**
64 | * Instantiate location information based on a {@link PHP_MANUAL#debug_backtrace}.
65 | *
66 | * @param array $trace
67 | * @param mixed $caller
68 | */
69 | public function __construct($trace, $fqcn = null) {
70 | $this->lineNumber = isset($trace['line']) ? $trace['line'] : null;
71 | $this->fileName = isset($trace['file']) ? $trace['file'] : null;
72 | $this->className = isset($trace['class']) ? $trace['class'] : null;
73 | $this->methodName = isset($trace['function']) ? $trace['function'] : null;
74 | $this->fullInfo = $this->getClassName() . '.' . $this->getMethodName() .
75 | '(' . $this->getFileName() . ':' . $this->getLineNumber() . ')';
76 | }
77 |
78 | /** Returns the caller class name. */
79 | public function getClassName() {
80 | return ($this->className === null) ? self::LOCATION_INFO_NA : $this->className;
81 | }
82 |
83 | /** Returns the caller file name. */
84 | public function getFileName() {
85 | return ($this->fileName === null) ? self::LOCATION_INFO_NA : $this->fileName;
86 | }
87 |
88 | /** Returns the caller line number. */
89 | public function getLineNumber() {
90 | return ($this->lineNumber === null) ? self::LOCATION_INFO_NA : $this->lineNumber;
91 | }
92 |
93 | /** Returns the caller method name. */
94 | public function getMethodName() {
95 | return ($this->methodName === null) ? self::LOCATION_INFO_NA : $this->methodName;
96 | }
97 |
98 | /** Returns the full information of the caller. */
99 | public function getFullInfo() {
100 | return ($this->fullInfo === null) ? self::LOCATION_INFO_NA : $this->fullInfo;
101 | }
102 |
103 | }