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 : * Layout which formats the events using PHP's serialize() function.
23 : *
24 : * Available options:
25 : * - locationInfo - If set to true, the event's location information will also
26 : * be serialized (slow, defaults to false).
27 : *
28 : * @version $Revision: 1059292 $
29 : * @package log4php
30 : * @subpackage layouts
31 : * @since 2.2
32 : */
33 : class LoggerLayoutSerialized extends LoggerLayout {
34 :
35 : /** Whether to include the event's location information (slow). */
36 : protected $locationInfo = false;
37 :
38 : /** Sets the location information flag. */
39 : public function setLocationInfo($value) {
40 3 : $this->setBoolean('locationInfo', $value);
41 2 : }
42 :
43 : /** Returns the location information flag. */
44 : public function getLocationInfo() {
45 1 : return $this->locationInfo;
46 : }
47 :
48 : public function format(LoggerLoggingEvent $event) {
49 : // If required, initialize the location data
50 2 : if($this->locationInfo) {
51 1 : $event->getLocationInformation();
52 1 : }
53 2 : return serialize($event) . PHP_EOL;
54 : }
55 : }
|