     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:  * LoggerAppenderPhp logs events by creating a PHP user-level message using
    21:  * the PHP's trigger_error()function.
    22:  *
    23:  * This appender has no configurable parameters.
    24:  *
    25:  * Levels are mapped as follows:
    26:  *
    27:  * - <b>level < WARN</b> mapped to E_USER_NOTICE
    28:  * - <b>WARN <= level < ERROR</b> mapped to E_USER_WARNING
    29:  * - <b>level >= ERROR</b> mapped to E_USER_ERROR
    30:  *
    31:  * @version $Revision: 1337820 $
    32:  * @package log4php
    33:  * @subpackage appenders
    34:  * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
    35:  * @link http://logging.apache.org/log4php/docs/appenders/php.html Appender documentation
    36:  */
    37: class LoggerAppenderPhp extends LoggerAppender {
    38:
    39:     public function append(LoggerLoggingEvent $event) {
    40:         $level = $event->getLevel();
    41:         if($level->isGreaterOrEqual(LoggerLevel::getLevelError())) {
    42:             trigger_error($this->layout->format($event), E_USER_ERROR);
    43:         } else if ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) {
    44:             trigger_error($this->layout->format($event), E_USER_WARNING);
    45:         } else {
    46:             trigger_error($this->layout->format($event), E_USER_NOTICE);
    47:         }
    48:     }
    49: }
    50: