          CALL LOG_TABLES(LOG_ID, LEV_ID, NEW_MESSAGE);
        WHEN 0 THEN -- Drops the message.
          CALL LOG_NULL(LOG_ID, LEV_ID, NEW_MESSAGE, CONFIGURATION);
-       -- >>>
-       -- Put here any other appender.
-       -- <<<
        ELSE -- By default writes in the table.
-         CALL LOG_TABLES(LOG_ID, LEV_ID, NEW_MESSAGE);
+        DYNAMIC : BEGIN
+         DECLARE STMT STATEMENT;
+         PREPARE STMT FROM 'CALL LOG_' || APPEND_NAME || '(?, ?, ?, ?)';
+         EXECUTE STMT USING LOG_ID, LEV_ID, NEW_MESSAGE, CONFIGURATION;
      END CASE;
     ELSE
        -- Internal logging.

  DECLARE PATTERN ANCHOR LOGDATA.CONF_APPENDERS.PATTERN; -- Appender's pattern.
  DECLARE LVL_REF ANCHOR LOGDATA.CONF_APPENDERS.LEVEL_ID; -- Appender's level.
  DECLARE LOGGER_ID_FETCHED ANCHOR LOGDATA.REFERENCES.LOGGER_ID; -- Logger id to be analyzed.
  DECLARE AT_END BOOLEAN; -- End of the cursor.
  DECLARE ACTIVE BOOLEAN;
  DECLARE NESTING_LEVEL INTEGER;
  DECLARE REFERENCES CURSOR WITH HOLD FOR
    SELECT LOGGER_ID, NAME, APPENDER_ID, CONFIGURATION, PATTERN, LEVEL_ID
    FROM LOGDATA.REFERENCES R JOIN LOGDATA.CONF_APPENDERS C
    ON R.APPENDER_REF_ID = C.REF_ID
    -- 5 active appenders is already too much.
    OPTIMIZE FOR 5 ROW
    WITH UR;

     END IF;
    END IF;
    FETCH REFERENCES INTO LOGGER_ID_FETCHED, CURRENT_APPENDER_NAME, APPENDER_ID,
      CONFIGURATION, PATTERN, LVL_REF, APPEND_NAME;
   END WHILE;
   CLOSE REFERENCES;
  ELSEIF (LOG_ID = -1) THEN
