You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by "Knut Urdalen (JIRA)" <ji...@apache.org> on 2009/04/29 22:37:30 UTC

[jira] Resolved: (LOG4PHP-16) Patch for LoggerAppenderSyslog to use Layouts

     [ https://issues.apache.org/jira/browse/LOG4PHP-16?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Urdalen resolved LOG4PHP-16.
---------------------------------

    Resolution: Fixed
      Assignee: Knut Urdalen

Marshall has a good point about size limits for syslog, anyway it's totally reasonable to use layouts in the syslog-appender as well. In example if you want to use MDC properties.


> Patch for LoggerAppenderSyslog to use Layouts
> ---------------------------------------------
>
>                 Key: LOG4PHP-16
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-16
>             Project: Log4php
>          Issue Type: Improvement
>          Components: Code
>            Reporter: Gary Richardson
>            Assignee: Knut Urdalen
>            Priority: Minor
>             Fix For: 2.0
>
>         Attachments: LoggerAppenderSyslog.patch
>
>
> I noticed that LoggerAppenderSyslog seems to ignore layouts. I'm not sure if this is by design.
> The following patch causes LoggerAppenderSyslog to use layouts:
> Index: src/main/php/appenders/LoggerAppenderSyslog.php
> ===================================================================
> --- src/main/php/appenders/LoggerAppenderSyslog.php     (revision 677439)
> +++ src/main/php/appenders/LoggerAppenderSyslog.php     (working copy)
> @@ -86,6 +86,11 @@
>       */
>      private $_overridePriority;
>  
> +       public function __construct($name) {
> +               parent::__construct($name);
> +               $this->requiresLayout = true;
> +       }
> +    
>          /**
>       * Set the ident of the syslog message.
>       *
> @@ -156,7 +161,12 @@
>          openlog($this->_ident, $this->_option, $this->_facility);
>          
>          $level   = $event->getLevel();
> -        $message = $event->getRenderedMessage();
> +        if(null == $this->layout) {
> +               $message = $event->getRenderedMessage();
> +        }
> +        else {
> +               $message = $this->layout->format($event);
> +        }
>          
>          // If the priority of a syslog message can be overridden by a value defined in the properties-file,
>          // use that value, else use the one that is defined in the code.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.