public static void log(Logger logger,
                           Level level,
                           String message,
                           Throwable throwable,
                           Object parameter) {
        if (logger.isLoggable(level)) {
            final String formattedMessage =
                            MessageFormat.format(localize(logger, message), parameter);
            doLog(logger, level, formattedMessage, throwable);
        }
    }
public static void log ( Logger logger , Level level , String message , Throwable throwable , Object parameter ) { if ( logger . isLoggable ( level ) ) { final String formattedMessage = MessageFormat . format ( localize ( logger , message ) , parameter ) ; doLog ( logger , level , formattedMessage , throwable ) ; } }
Allows both parameter substitution and a typed Throwable to be logged.

@param logger the Logger the log to
@param level the severity level
@param message the log message
@param throwable the Throwable to log
@param parameter the parameter to substitute into message