Browse Source

[MonologBundle] Added support of SyslogHandler

Christophe Coevoet 14 years ago
parent
commit
a46074191b

+ 2 - 0
src/Symfony/Bundle/MonologBundle/DependencyInjection/Configuration.php

@@ -56,6 +56,8 @@ class Configuration
                             ->scalarNode('level')->defaultValue('DEBUG')->end()
                             ->booleanNode('bubble')->defaultFalse()->end()
                             ->scalarNode('path')->end() // stream specific
+                            ->scalarNode('ident')->end() // syslog specific
+                            ->scalarNode('facility')->end() // syslog specific
                             ->scalarNode('action_level')->end() // fingerscrossed specific
                             ->scalarNode('buffer_size')->end() // fingerscrossed specific
                             ->scalarNode('handler')->end() // fingerscrossed specific

+ 17 - 8
src/Symfony/Bundle/MonologBundle/DependencyInjection/MonologExtension.php

@@ -24,6 +24,7 @@ use Symfony\Component\DependencyInjection\Parameter;
  * MonologExtension is an extension for the Monolog library.
  *
  * @author Jordi Boggiano <j.boggiano@seld.be>
+ * @author Christophe Coevoet <stof@notk.org>
  */
 class MonologExtension extends Extension
 {
@@ -32,14 +33,6 @@ class MonologExtension extends Extension
     /**
      * Loads the Monolog configuration.
      *
-     * Usage example:
-     *
-     *      monolog:
-     *          handlers:
-     *              myhandler:
-     *                  level: info
-     *                  path: path/to/some.log
-     *
      * @param array            $config    An array of configuration settings
      * @param ContainerBuilder $container A ContainerBuilder instance
      */
@@ -113,6 +106,22 @@ class MonologExtension extends Extension
             ));
             break;
 
+        case 'syslog':
+            if (!isset($handler['ident'])) {
+                $handler['ident'] = false;
+            }
+            if (!isset($handler['facility'])) {
+                $handler['facility'] = 'user';
+            }
+
+            $definition->setArguments(array(
+                $handler['ident'],
+                $handler['facility'],
+                $handler['level'],
+                $handler['bubble'],
+            ));
+            break;
+
         default:
             // Handler using the constructor of AbstractHandler without adding their own arguments
             $definition->setArguments(array(

+ 1 - 0
src/Symfony/Bundle/MonologBundle/Resources/config/monolog.xml

@@ -8,6 +8,7 @@
         <parameter key="monolog.logger.class">Symfony\Bundle\MonologBundle\Logger\Logger</parameter>
         <parameter key="monolog.handler.stream.class">Monolog\Handler\StreamHandler</parameter>
         <parameter key="monolog.handler.fingerscrossed.class">Monolog\Handler\FingersCrossedHandler</parameter>
+        <parameter key="monolog.handler.syslog.class">Monolog\Handler\SyslogHandler</parameter>
         <parameter key="monolog.handler.null.class">Monolog\Handler\NullHandler</parameter>
         <parameter key="monolog.handler.test.class">Monolog\Handler\TestHandler</parameter>
         <parameter key="monolog.handler.debug.class">Symfony\Bundle\MonologBundle\Logger\DebugHandler</parameter>

+ 2 - 0
src/Symfony/Bundle/MonologBundle/Resources/config/schema/monolog-1.0.xsd

@@ -24,6 +24,8 @@
         <xsd:attribute name="path" type="xsd:string" />
         <xsd:attribute name="id" type="xsd:string" />
         <xsd:attribute name="name" type="xsd:string" use="required">
+        <xsd:attribute name="ident" type="xsd:string" />
+        <xsd:attribute name="facility" type="xsd:string" />
         <xsd:attribute name="action-level" type="level" />
         <xsd:attribute name="buffer-size" type="xsd:integer" />
         <xsd:attribute name="handler" type="xsd:string" />