 ===================================================================
 --- skeleton/util/log/LogAppender.class.php	(revision 13884)
 +++ skeleton/util/log/LogAppender.class.php	(working copy)
-@@ -11,29 +11,49 @@
+@@ -11,29 +11,58 @@
     * @purpose  Base class
     */
    abstract class LogAppender extends Object {

         }
       }
     }
@@ -150,6 +121,7 @@
      */
     public function addAppender($appender, $flag= LogLevel::ALL) {
       $this->_appenders[$flag][]= $appender;
+      $appender->getLayout() || $appender->setLayout(self::$DEFAULT_LAYOUT);
       return $appender;
     }
 
@@ -165,6 +137,7 @@
      */
     public function withAppender($appender, $flag= LogLevel::ALL) {
       $this->_appenders[$flag][]= $appender;
+      $appender->getLayout() || $appender->setLayout(self::$DEFAULT_LAYOUT);
       return $this;
     }
     
@@ -211,9 +184,9 @@
      * @param   mixed* args
      */
     public function info() {

       $args= func_get_args();
-      array_unshift($args, LogLevel::ERROR);
-      call_user_func_array(array($this, 'callAppenders'), $args);
+      $this->callAppenders(LogLevel::ERROR, $args);
     }
 
     /**
@@ -272,8 +244,9 @@
      * @param   mixed* args
      */
     public function errorf() {
+      if (!($this->flags & LogLevel::ERROR)) return;
       $args= func_get_args();
-      $this->callAppenders(LogLevel::ERROR, vsprintf($args[0], array_slice($args, 1)));
+      $this->callAppenders(LogLevel::ERROR, array(vsprintf($args[0], array_slice($args, 1))));
     }
 
     /**
@@ -282,9 +255,9 @@
      * @param   mixed* args
      */
     public function debug() {
