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: 1334369 $
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: $this->setBoolean('locationInfo', $value);
41: }
42:
43: /** Returns the location information flag. */
44: public function getLocationInfo() {
45: return $this->locationInfo;
46: }
47:
48: public function format(LoggerLoggingEvent $event) {
49: // If required, initialize the location data
50: if($this->locationInfo) {
51: $event->getLocationInformation();
52: }
53: return serialize($event) . PHP_EOL;
54: }
55: }
56: