OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / include / lib / log4php / appenders / LoggerAppenderMail.php
1 <?php
2 /**
3  * log4php is a PHP port of the log4j java logging package.
4  * 
5  * <p>This framework is based on log4j (see {@link http://jakarta.apache.org/log4j log4j} for details).</p>
6  * <p>Design, strategies and part of the methods documentation are developed by log4j team 
7  * (Ceki Gülcü as log4j project founder and 
8  * {@link http://jakarta.apache.org/log4j/docs/contributors.html contributors}).</p>
9  *
10  * <p>PHP port, extensions and modifications by VxR. All rights reserved.<br>
11  * For more information, please see {@link http://www.vxr.it/log4php/}.</p>
12  *
13  * <p>This software is published under the terms of the LGPL License
14  * a copy of which has been included with this distribution in the LICENSE file.</p>
15  * 
16  * @package log4php
17  * @subpackage appenders
18  */
19
20 /**
21  * @ignore 
22  */
23 if (!defined('LOG4PHP_DIR')) define('LOG4PHP_DIR', dirname(__FILE__) . '/..');
24  
25 require_once(LOG4PHP_DIR . '/LoggerAppenderSkeleton.php');
26 require_once(LOG4PHP_DIR . '/LoggerLog.php');
27
28 /**
29  * Appends log events to mail using php function {@link PHP_MANUAL#mail}.
30  *
31  * <p>Parameters are {@link $from}, {@link $to}, {@link $subject}.</p>
32  * <p>This appender requires a layout.</p>
33  *
34  * @author VxR <vxr@vxr.it>
35  * @version $Revision: 2 $
36  * @package log4php
37  * @subpackage appenders
38  */
39 class LoggerAppenderMail extends LoggerAppenderSkeleton {
40
41     /**
42      * @var string 'from' field
43      */
44     var $from = null;
45
46     /**
47      * @var string 'subject' field
48      */
49     var $subject = 'Log4php Report';
50     
51     /**
52      * @var string 'to' field
53      */
54     var $to = null;
55
56     /**
57      * @var string used to create mail body
58      * @access private
59      */
60     var $body = '';
61     
62     /**
63      * @access private
64      */
65     var $requiresLayout = true;
66     
67     /**
68      * Constructor.
69      *
70      * @param string $name appender name
71      */
72     function LoggerAppenderMail($name)
73     {
74         $this->LoggerAppenderSkeleton($name);
75     }
76
77     function activateOptions()
78     {
79         $this->closed = false;
80         return;
81     }
82     
83     function close()
84     {
85         $from       = $this->getFrom();
86         $to         = $this->getTo();
87
88         if (!empty($this->body) and $from !== null and $to !== null and $this->layout !== null) {
89
90             $subject    = $this->getSubject();            
91
92             LoggerLog::debug("LoggerAppenderMail::close() sending mail from=[{$from}] to=[{$to}] subject=[{$subject}]");
93             
94             @mail(
95                 $to, $subject, 
96                 $this->layout->getHeader() . $this->body . $this->layout->getFooter(),
97                 "From: {$from}\r\n"
98             );
99         }
100         $this->closed = true;
101     }
102     
103     /**
104      * @return string
105      */
106     function getFrom()
107     {
108         return $this->from;
109     }
110     
111     /**
112      * @return string
113      */
114     function getSubject()
115     {
116         return $this->subject;
117     }
118
119     /**
120      * @return string
121      */
122     function getTo()
123     {
124         return $this->to;
125     }
126     
127     function setSubject($subject)
128     {
129         $this->subject = $subject;
130     }
131     
132     function setTo($to)
133     {
134         $this->to = $to;
135     }
136
137     function setFrom($from)
138     {
139         $this->from = $from;
140     }  
141
142     function append($event)
143     {
144         if ($this->layout !== null)
145             $this->body .= $this->layout->format($event);
146     }
147 }
148 ?>