Overview

Packages

  • log4php
    • appenders
    • configurators
    • filters
    • helpers
    • layouts
    • pattern
    • renderers

Classes

  • LoggerAppenderConsole
  • LoggerAppenderDailyFile
  • LoggerAppenderEcho
  • LoggerAppenderFile
  • LoggerAppenderFirePHP
  • LoggerAppenderMail
  • LoggerAppenderMailEvent
  • LoggerAppenderMongoDB
  • LoggerAppenderNull
  • LoggerAppenderPDO
  • LoggerAppenderPhp
  • LoggerAppenderRollingFile
  • LoggerAppenderSocket
  • LoggerAppenderSyslog
  • Overview
  • Package
  • Class
  • Tree
  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:  * LoggerAppenderMail appends log events via email.
 21:  *
 22:  * This appender does not send individual emails for each logging requests but 
 23:  * will collect them in a buffer and send them all in a single email once the 
 24:  * appender is closed (i.e. when the script exists). Because of this, it may 
 25:  * not appropriate for long running scripts, in which case 
 26:  * LoggerAppenderMailEvent might be a better choice.
 27:  * 
 28:  * This appender uses a layout.
 29:  * 
 30:  * ## Configurable parameters: ##
 31:  * 
 32:  * - **to** - Email address(es) to which the log will be sent. Multiple email 
 33:  *     addresses may be specified by separating them with a comma.
 34:  * - **from** - Email address which will be used in the From field.
 35:  * - **subject** - Subject of the email message.
 36:  * 
 37:  * @version $Revision: 1337820 $
 38:  * @package log4php
 39:  * @subpackage appenders
 40:  * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
 41:  * @link http://logging.apache.org/log4php/docs/appenders/mail.html Appender documentation
 42:  */
 43: class LoggerAppenderMail extends LoggerAppender {
 44: 
 45:     /** 
 46:      * Email address to put in From field of the email.
 47:      * @var string
 48:      */
 49:     protected $from = null;
 50: 
 51:     /** 
 52:      * The subject of the email.
 53:      * @var string
 54:      */
 55:     protected $subject = 'Log4php Report';
 56:     
 57:     /**
 58:      * One or more comma separated email addresses to which to send the email. 
 59:      * @var string
 60:      */
 61:     protected $to = null;
 62: 
 63:     /** 
 64:      * Indiciates whether this appender should run in dry mode.
 65:      * @deprecated
 66:      * @var boolean 
 67:      */
 68:     protected $dry = false;
 69: 
 70:     /** 
 71:      * Buffer which holds the email contents before it is sent. 
 72:      * @var string  
 73:      */
 74:     protected $body = '';
 75:     
 76:     public function append(LoggerLoggingEvent $event) {
 77:         if($this->layout !== null) {
 78:             $this->body .= $this->layout->format($event);
 79:         }
 80:     }
 81:     
 82:     public function close() {
 83:         if($this->closed != true) {
 84:             $from = $this->from;
 85:             $to = $this->to;
 86:     
 87:             if(!empty($this->body) and $from !== null and $to !== null and $this->layout !== null) {
 88:                 $subject = $this->subject;
 89:                 if(!$this->dry) {
 90:                     mail(
 91:                         $to, $subject, 
 92:                         $this->layout->getHeader() . $this->body . $this->layout->getFooter(),
 93:                         "From: {$from}\r\n");
 94:                 } else {
 95:                     echo "DRY MODE OF MAIL APP.: Send mail to: ".$to." with content: ".$this->body;
 96:                 }
 97:             }
 98:             $this->closed = true;
 99:         }
100:     }
101:     
102:     /** Sets the 'subject' parameter. */
103:     public function setSubject($subject) {
104:         $this->setString('subject', $subject);
105:     }
106:     
107:     /** Returns the 'subject' parameter. */
108:     public function getSubject() {
109:         return $this->subject;
110:     }
111:     
112:     /** Sets the 'to' parameter. */
113:     public function setTo($to) {
114:         $this->setString('to', $to);
115:     }
116:     
117:     /** Returns the 'to' parameter. */
118:     public function getTo() {
119:         return $this->to;
120:     }
121: 
122:     /** Sets the 'from' parameter. */
123:     public function setFrom($from) {
124:         $this->setString('from', $from);
125:     }
126:     
127:     /** Returns the 'from' parameter. */
128:     public function getFrom() {
129:         return $this->from;
130:     }
131: 
132:     /** Enables or disables dry mode. */
133:     public function setDry($dry) {
134:         $this->setBoolean('dry', $dry);
135:     }
136: }
137: 
Apache log4php API documentation generated by ApiGen 2.8.0