OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / include / lib / log4php / appenders / LoggerAppenderSyslog.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 . '/LoggerLevel.php');
27 require_once(LOG4PHP_DIR . '/LoggerLog.php');
28
29 /**
30  * Log events using php {@link PHP_MANUAL#syslog} function.
31  *
32  * Levels are mapped as follows:
33  * - <b>level &gt;= FATAL</b> to LOG_ALERT
34  * - <b>FATAL &gt; level &gt;= ERROR</b> to LOG_ERR 
35  * - <b>ERROR &gt; level &gt;= WARN</b> to LOG_WARNING
36  * - <b>WARN  &gt; level &gt;= INFO</b> to LOG_INFO
37  * - <b>INFO  &gt; level &gt;= DEBUG</b> to LOG_DEBUG
38  *
39  * @author VxR <vxr@vxr.it>
40  * @version $Revision: 2 $
41  * @package log4php
42  * @subpackage appenders
43  */ 
44 class LoggerAppenderSyslog extends LoggerAppenderSkeleton {
45     
46     /**
47      * Constructor
48      *
49      * @param string $name appender name
50      */
51     function LoggerAppenderSyslog($name)
52     {
53         $this->LoggerAppenderSkeleton($name);
54     }
55
56     function activateOptions()
57     {
58         define_syslog_variables();
59         $this->closed = false;
60     }
61
62     function close() 
63     {
64         closelog();
65         $this->closed = true;
66     }
67
68     function append($event)
69     {
70         $level   = $event->getLevel();
71         $message = $event->getRenderedMessage();
72         if ($level->isGreaterOrEqual(LoggerLevel::getLevelFatal())) {
73             syslog(LOG_ALERT, $message);
74         } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelError())) {
75             syslog(LOG_ERR, $message);        
76         } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelWarn())) {
77             syslog(LOG_WARNING, $message);
78         } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelInfo())) {
79             syslog(LOG_INFO, $message);
80         } elseif ($level->isGreaterOrEqual(LoggerLevel::getLevelDebug())) {
81             syslog(LOG_DEBUG, $message);
82         }
83     }
84 }
85 ?>