[ 
https://issues.apache.org/jira/browse/LOG4PHP-16?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12614454#action_12614454
 ] 

Marshall Pierce commented on LOG4PHP-16:
----------------------------------------

I think that formatting of events is typically left to the syslog daemon you 
choose to run. That could be a reason why that appender does not use 
formatting. Also, syslog is commonly sent over UDP, which imposes a quite 
restrictive size limit. See http://www.mail-archive.com/[EMAIL 
PROTECTED]/msg01623.html for more on that size limit.

I'm not necessarily saying having a layout is a bad thing (you could always 
choose a very simple layout), but keep in mind that messages may end up 
truncated if you have a fancy layout that has lots of extra non-message 
information.

> Patch for LoggerAppenderSyslog to use Layouts
> ---------------------------------------------
>
>                 Key: LOG4PHP-16
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-16
>             Project: Log4php
>          Issue Type: Improvement
>            Reporter: Gary Richardson
>            Priority: Minor
>         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.

Reply via email to