Index: library/Zend/Log/Writer/Syslog.php
===================================================================
--- library/Zend/Log/Writer/Syslog.php	(revision 22465)
+++ library/Zend/Log/Writer/Syslog.php	(working copy)
@@ -84,27 +84,7 @@
      *
      * @var array
      */
-    protected $_validFacilities = array(
-        LOG_AUTH,
-        LOG_AUTHPRIV,
-        LOG_CRON,
-        LOG_DAEMON,
-        LOG_KERN,
-        LOG_LOCAL0,
-        LOG_LOCAL1,
-        LOG_LOCAL2,
-        LOG_LOCAL3,
-        LOG_LOCAL4,
-        LOG_LOCAL5,
-        LOG_LOCAL6,
-        LOG_LOCAL7,
-        LOG_LPR,
-        LOG_MAIL,
-        LOG_NEWS,
-        LOG_SYSLOG,
-        LOG_USER,
-        LOG_UUCP,
-    );
+    protected $_validFacilities = array();
 
     /**
      * Class constructor
@@ -117,10 +97,16 @@
         if (isset($params['application'])) {
             $this->_application = $params['application'];
         }
+
+        $runInitializeSyslog = true;
         if (isset($params['facility'])) {
-            $this->_facility = $params['facility'];
+            $this->_facility = $this->setFacility($params['facility']);
+            $runInitializeSyslog = false;
         }
-        $this->_initializeSyslog();
+
+        if ($runInitializeSyslog) {
+            $this->_initializeSyslog();
+        }
     }
 
     /**
@@ -136,10 +122,48 @@
     }
 
     /**
+     * Initialize values facilities
+     *
+     * @return void
+     */
+    protected function _initializeValidFacilities()
+    {
+        if (count($this->_validFacilities) > 0) {
+            return;
+        }
+
+        $constants = array(
+            'LOG_AUTH',
+            'LOG_AUTHPRIV',
+            'LOG_CRON',
+            'LOG_DAEMON',
+            'LOG_KERN',
+            'LOG_LOCAL0',
+            'LOG_LOCAL1',
+            'LOG_LOCAL2',
+            'LOG_LOCAL3',
+            'LOG_LOCAL4',
+            'LOG_LOCAL5',
+            'LOG_LOCAL6',
+            'LOG_LOCAL7',
+            'LOG_LPR',
+            'LOG_MAIL',
+            'LOG_NEWS',
+            'LOG_SYSLOG',
+            'LOG_USER',
+            'LOG_UUCP'
+        );
+
+        foreach ($constants as $constant) {
+            if (defined($constant)) {
+                $this->_validFacilities[] = constant($constant);
+            }
+        }
+    }
+
+    /**
      * Initialize syslog / set application name and facility
      *
-     * @param  string $application Application name
-     * @param  string $facility Syslog facility
      * @return void
      */
     protected function _initializeSyslog()
@@ -162,6 +186,8 @@
             return;
         }
 
+        $this->_initializeValidFacilities();
+
         if (!in_array($facility, $this->_validFacilities)) {
             require_once 'Zend/Log/Exception.php';
             throw new Zend_Log_Exception('Invalid log facility provided; please see http://php.net/openlog for a list of valid facility values');

