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 |
|
19 /** |
|
20 * Logs messages as HTTP headers using the FirePHP Insight API. |
|
21 * |
|
22 * This appender requires the FirePHP server library version 1.0 or later. |
|
23 * |
|
24 * ## Configurable parameters: ## |
|
25 * |
|
26 * - **target** - (string) The target to which messages will be sent. Possible options are |
|
27 * 'page' (default), 'request', 'package' and 'controller'. For more details, |
|
28 * see FirePHP documentation. |
|
29 * |
|
30 * This class was originally contributed by Bruce Ingalls (Bruce.Ingalls-at-gmail-dot-com). |
|
31 * |
|
32 * @link https://github.com/firephp/firephp FirePHP homepage. |
|
33 * @link http://sourcemint.com/github.com/firephp/firephp/1:1.0.0b1rc6/-docs/Welcome FirePHP documentation. |
|
34 * @link http://sourcemint.com/github.com/firephp/firephp/1:1.0.0b1rc6/-docs/Configuration/Constants FirePHP constants documentation. |
|
35 * @link http://logging.apache.org/log4php/docs/appenders/firephp.html Appender documentation |
|
36 * |
|
37 * @version $Revision: 1343684 $ |
|
38 * @package log4php |
|
39 * @subpackage appenders |
|
40 * @since 2.3 |
|
41 */ |
|
42 class LoggerAppenderFirePHP extends LoggerAppender { |
|
43 |
|
44 /** |
|
45 * Instance of the Insight console class. |
|
46 * @var Insight_Plugin_Console |
|
47 */ |
|
48 protected $console; |
|
49 |
|
50 /** |
|
51 * The target for log messages. Possible values are: 'page' (default), |
|
52 * 'request', 'package' and 'contoller'. |
|
53 */ |
|
54 protected $target = 'page'; |
|
55 |
|
56 public function activateOptions() { |
|
57 if (method_exists('FirePHP', 'to')) { |
|
58 $this->console = FirePHP::to($this->target)->console(); |
|
59 $this->closed = false; |
|
60 } else { |
|
61 $this->warn('FirePHP is not installed correctly. Closing appender.'); |
|
62 } |
|
63 } |
|
64 |
|
65 public function append(LoggerLoggingEvent $event) { |
|
66 $msg = $event->getMessage(); |
|
67 |
|
68 // Skip formatting for objects and arrays which are handled by FirePHP. |
|
69 if (!is_array($msg) && !is_object($msg)) { |
|
70 $msg = $this->getLayout()->format($event); |
|
71 } |
|
72 |
|
73 switch ($event->getLevel()->toInt()) { |
|
74 case LoggerLevel::TRACE: |
|
75 case LoggerLevel::DEBUG: |
|
76 $this->console->log($msg); |
|
77 break; |
|
78 case LoggerLevel::INFO: |
|
79 $this->console->info($msg); |
|
80 break; |
|
81 case LoggerLevel::WARN: |
|
82 $this->console->warn($msg); |
|
83 break; |
|
84 case LoggerLevel::ERROR: |
|
85 case LoggerLevel::FATAL: |
|
86 $this->console->error($msg); |
|
87 break; |
|
88 } |
|
89 } |
|
90 |
|
91 /** Returns the target. */ |
|
92 public function getTarget() { |
|
93 return $this->target; |
|
94 } |
|
95 |
|
96 /** Sets the target. */ |
|
97 public function setTarget($target) { |
|
98 $this->setString('target', $target); |
|
99 } |
|
100 } |
|