View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.log4j;
    18
    19  import org.apache.log4j.spi.LoggingEvent;
    20
    21  import java.util.ResourceBundle;
    22
    23
    24  /**
    25   * This class provides parameterized logging services
    26   * using the SLF4J pattern syntax.
    27   * <p>
    28   * Message formatting is only performed when the
    29   * request exceeds the threshold level of the logger.
    30   *
    31   * @since 1.2.16
    32   *
    33   */
    34  public final class LogSF extends LogXF {
    35      /**
    36       * private constructor.
    37       *
    38       */
    39      private LogSF() {
    40      }
    41
    42
    43
    44
    45      /**
    46       * Formats arguments using SLF4J-like formatter.
    47       * @param pattern pattern, may be malformed.
    48       * @param arguments arguments.
    49       * @return Message string
    50       */
    51      private static String format(final String pattern,
    52                                   final Object[] arguments) {
    53          if (pattern != null) {
    54              String retval = "";
    55              int count = 0;
    56              int prev = 0;
    57              int pos = pattern.indexOf("{");
    58              while(pos >= 0) {
    59                  if (pos == 0 || pattern.charAt(pos-1) != '\\') {
    60                      retval += pattern.substring(prev, pos);
    61                      if (pos + 1 < pattern.length() && pattern.charAt(pos+1) == '}') {
    62                          if(arguments != null && count < arguments.length) {
    63                              retval += arguments[count++];
    64                          } else {
    65                              retval += "{}";
    66                          }
    67                          prev = pos + 2;
    68                      } else {
    69                          retval += "{";
    70                          prev = pos + 1;
    71                      }
    72                  } else {
    73                      retval += pattern.substring(prev, pos - 1) + "{";
    74                      prev = pos + 1;
    75                  }
    76                  pos = pattern.indexOf("{", prev);
    77              }
    78              return retval + pattern.substring(prev);
    79          }
    80          return null;
    81      }
    82
    83      /**
    84       * Formats arguments using MessageFormat.
    85       * @param pattern pattern, may be malformed.
    86       * @param arg0 argument, may be null or mismatched.
    87       * @return Message string
    88       */
    89      private static String format(final String pattern, final Object arg0) {
    90          if (pattern != null) {
    91              //
    92              //  if there is an escaped brace, delegate to multi-param formatter
    93              if (pattern.indexOf("\\{") >= 0) {
    94                  return format(pattern, new Object[] { arg0 });
    95              }
    96              int pos = pattern.indexOf("{}");
    97              if (pos >= 0) {
    98                  return pattern.substring(0, pos) + arg0 + pattern.substring(pos+2);
    99              }
    100         }
    101         return pattern;
    102     }
    103
    104     /**
    105      * Formats arguments using MessageFormat using a pattern from
    106      * a resource bundle.
    107      * @param resourceBundleName name of resource bundle, may be null.
    108      * @param key key for pattern in resource bundle, may be null.
    109      * @param arguments arguments, may be null or mismatched.
    110      * @return Message string or null
    111      */
    112     private static String format(
    113             final String resourceBundleName,
    114             final String key,
    115             final Object[] arguments) {
    116         String pattern;
    117         if (resourceBundleName != null) {
    118             try {
    119                 ResourceBundle bundle =
    120                         ResourceBundle.getBundle(resourceBundleName);
    121                 pattern = bundle.getString(key);
    122             } catch (Exception ex) {
    123                 pattern = key;
    124             }
    125         } else {
    126             pattern = key;
    127         }
    128         return format(pattern, arguments);
    129     }
    130
    131
    132     /**
    133      * Fully Qualified Class Name of this class.
    134      */
    135     private static final String FQCN = LogSF.class.getName();
    136
    137     /**
    138      * Equivalent of Logger.forcedLog.
    139      *
    140      * @param logger logger, may not be null.
    141      * @param level level, may not be null.
    142      * @param msg message, may be null.
    143      */
    144     private static void forcedLog(final Logger logger,
    145                                   final Level level,
    146                                   final String msg) {
    147         logger.callAppenders(new LoggingEvent(FQCN, logger, level, msg, null));
    148     }
    149
    150     /**
    151      * Equivalent of Logger.forcedLog.
    152      *
    153      * @param logger logger, may not be null.
    154      * @param level level, may not be null.
    155      * @param msg message, may be null.
    156      * @param t throwable.
    157      */
    158     private static void forcedLog(final Logger logger,
    159                                   final Level level,
    160                                   final String msg,
    161                                   final Throwable t) {
    162         logger.callAppenders(new LoggingEvent(FQCN, logger, level, msg, t));
    163     }
    164     /**
    165          * Log a parameterized message at trace level.
    166          * @param logger logger, may not be null.
    167          * @param pattern pattern, may be null.
    168          * @param arguments an array of arguments to be
    169          *          formatted and substituted.
    170          */
    171     public static void trace(final Logger logger, final String pattern,
    172         final Object[] arguments) {
    173         if (logger.isEnabledFor(TRACE)) {
    174             forcedLog(logger, TRACE, format(pattern, arguments));
    175         }
    176     }
    177
    178     /**
    179      * Log a parameterized message at debug level.
    180      * @param logger logger, may not be null.
    181      * @param pattern pattern, may be null.
    182      * @param arguments an array of arguments to be formatted and substituted.
    183      */
    184     public static void debug(final Logger logger, final String pattern,
    185         final Object[] arguments) {
    186         if (logger.isDebugEnabled()) {
    187             forcedLog(logger, Level.DEBUG, format(pattern, arguments));
    188         }
    189     }
    190
    191     /**
    192      * Log a parameterized message at info level.
    193      * @param logger logger, may not be null.
    194      * @param pattern pattern, may be null.
    195      * @param arguments an array of arguments to be formatted and substituted.
    196      */
    197     public static void info(final Logger logger, final String pattern,
    198         final Object[] arguments) {
    199         if (logger.isInfoEnabled()) {
    200             forcedLog(logger, Level.INFO, format(pattern, arguments));
    201         }
    202     }
    203
    204     /**
    205      * Log a parameterized message at warn level.
    206      * @param logger logger, may not be null.
    207      * @param pattern pattern, may be null.
    208      * @param arguments an array of arguments to be formatted and substituted.
    209      */
    210     public static void warn(final Logger logger, final String pattern,
    211         final Object[] arguments) {
    212         if (logger.isEnabledFor(Level.WARN)) {
    213             forcedLog(logger, Level.WARN, format(pattern, arguments));
    214         }
    215     }
    216
    217     /**
    218      * Log a parameterized message at error level.
    219      * @param logger logger, may not be null.
    220      * @param pattern pattern, may be null.
    221      * @param arguments an array of arguments to be formatted and substituted.
    222      */
    223     public static void error(final Logger logger, final String pattern,
    224         final Object[] arguments) {
    225         if (logger.isEnabledFor(Level.ERROR)) {
    226             forcedLog(logger, Level.ERROR, format(pattern, arguments));
    227         }
    228     }
    229
    230     /**
    231      * Log a parameterized message at fatal level.
    232      * @param logger logger, may not be null.
    233      * @param pattern pattern, may be null.
    234      * @param arguments an array of arguments to be formatted and substituted.
    235      */
    236     public static void fatal(final Logger logger, final String pattern,
    237         final Object[] arguments) {
    238         if (logger.isEnabledFor(Level.FATAL)) {
    239             forcedLog(logger, Level.FATAL, format(pattern, arguments));
    240         }
    241     }
    242
    243     /**
    244          * Log a parameterized message at trace level.
    245          * @param logger logger, may not be null.
    246          * @param t throwable, may be null.
    247          * @param pattern pattern, may be null.
    248          * @param arguments an array of arguments to be
    249          *          formatted and substituted.
    250          */
    251     public static void trace(final Logger logger,
    252                              final Throwable t,
    253                              final String pattern,
    254         final Object[] arguments) {
    255         if (logger.isEnabledFor(TRACE)) {
    256             forcedLog(logger, TRACE, format(pattern, arguments), t);
    257         }
    258     }
    259
    260     /**
    261      * Log a parameterized message at debug level.
    262      * @param logger logger, may not be null.
    263      * @param t throwable, may be null.
    264      * @param pattern pattern, may be null.
    265      * @param arguments an array of arguments to be formatted and substituted.
    266      */
    267     public static void debug(final Logger logger,
    268                              final Throwable t,
    269                              final String pattern,
    270         final Object[] arguments) {
    271         if (logger.isDebugEnabled()) {
    272             forcedLog(logger, Level.DEBUG, format(pattern, arguments), t);
    273         }
    274     }
    275
    276     /**
    277      * Log a parameterized message at info level.
    278      * @param logger logger, may not be null.
    279      * @param t throwable, may be null.
    280      * @param pattern pattern, may be null.
    281      * @param arguments an array of arguments to be formatted and substituted.
    282      */
    283     public static void info(final Logger logger,
    284                             final Throwable t,
    285                             final String pattern,
    286         final Object[] arguments) {
    287         if (logger.isInfoEnabled()) {
    288             forcedLog(logger, Level.INFO, format(pattern, arguments), t);
    289         }
    290     }
    291
    292     /**
    293      * Log a parameterized message at warn level.
    294      * @param logger logger, may not be null.
    295      * @param t throwable, may be null.
    296      * @param pattern pattern, may be null.
    297      * @param arguments an array of arguments to be formatted and substituted.
    298      */
    299     public static void warn(final Logger logger,
    300                             final Throwable t,
    301                             final String pattern,
    302         final Object[] arguments) {
    303         if (logger.isEnabledFor(Level.WARN)) {
    304             forcedLog(logger, Level.WARN, format(pattern, arguments), t);
    305         }
    306     }
    307
    308     /**
    309      * Log a parameterized message at error level.
    310      * @param logger logger, may not be null.
    311      * @param t throwable, may be null.
    312      * @param pattern pattern, may be null.
    313      * @param arguments an array of arguments to be formatted and substituted.
    314      */
    315     public static void error(final Logger logger,
    316                              final Throwable t,
    317                              final String pattern,
    318         final Object[] arguments) {
    319         if (logger.isEnabledFor(Level.ERROR)) {
    320             forcedLog(logger, Level.ERROR, format(pattern, arguments), t);
    321         }
    322     }
    323
    324     /**
    325      * Log a parameterized message at fatal level.
    326      * @param logger logger, may not be null.
    327      * @param t throwable, may be null.
    328      * @param pattern pattern, may be null.
    329      * @param arguments an array of arguments to be formatted and substituted.
    330      */
    331     public static void fatal(final Logger logger,
    332                              final Throwable t,
    333                              final String pattern,
    334         final Object[] arguments) {
    335         if (logger.isEnabledFor(Level.FATAL)) {
    336             forcedLog(logger, Level.FATAL, format(pattern, arguments), t);
    337         }
    338     }
    339
    340
    341
    342     /**
    343      * Log a parameterized message at trace level.
    344      * @param logger logger, may not be null.
    345      * @param pattern pattern, may be null.
    346      * @param argument a value to be formatted and substituted.
    347      */
    348     public static void trace(final Logger logger, final String pattern,
    349         final boolean argument) {
    350         if (logger.isEnabledFor(TRACE)) {
    351             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    352         }
    353     }
    354
    355     /**
    356      * Log a parameterized message at trace level.
    357      * @param logger logger, may not be null.
    358      * @param pattern pattern, may be null.
    359      * @param argument a value to be formatted and substituted.
    360      */
    361     public static void trace(final Logger logger, final String pattern,
    362         final char argument) {
    363         if (logger.isEnabledFor(TRACE)) {
    364             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    365         }
    366     }
    367
    368     /**
    369      * Log a parameterized message at trace level.
    370      * @param logger logger, may not be null.
    371      * @param pattern pattern, may be null.
    372      * @param argument a value to be formatted and substituted.
    373      */
    374     public static void trace(final Logger logger, final String pattern,
    375         final byte argument) {
    376         if (logger.isEnabledFor(TRACE)) {
    377             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    378         }
    379     }
    380
    381     /**
    382      * Log a parameterized message at trace level.
    383      * @param logger logger, may not be null.
    384      * @param pattern pattern, may be null.
    385      * @param argument a value to be formatted and substituted.
    386      */
    387     public static void trace(final Logger logger, final String pattern,
    388         final short argument) {
    389         if (logger.isEnabledFor(TRACE)) {
    390             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    391         }
    392     }
    393
    394     /**
    395      * Log a parameterized message at trace level.
    396      * @param logger logger, may not be null.
    397      * @param pattern pattern, may be null.
    398      * @param argument a value to be formatted and substituted.
    399      */
    400     public static void trace(final Logger logger, final String pattern,
    401         final int argument) {
    402         if (logger.isEnabledFor(TRACE)) {
    403             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    404         }
    405     }
    406
    407     /**
    408      * Log a parameterized message at trace level.
    409      * @param logger logger, may not be null.
    410      * @param pattern pattern, may be null.
    411      * @param argument a value to be formatted and substituted.
    412      */
    413     public static void trace(final Logger logger, final String pattern,
    414         final long argument) {
    415         if (logger.isEnabledFor(TRACE)) {
    416             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    417         }
    418     }
    419
    420     /**
    421      * Log a parameterized message at trace level.
    422      * @param logger logger, may not be null.
    423      * @param pattern pattern, may be null.
    424      * @param argument a value to be formatted and substituted.
    425      */
    426     public static void trace(final Logger logger, final String pattern,
    427         final float argument) {
    428         if (logger.isEnabledFor(TRACE)) {
    429             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    430         }
    431     }
    432
    433     /**
    434      * Log a parameterized message at trace level.
    435      * @param logger logger, may not be null.
    436      * @param pattern pattern, may be null.
    437      * @param argument a value to be formatted and substituted.
    438      */
    439     public static void trace(final Logger logger, final String pattern,
    440         final double argument) {
    441         if (logger.isEnabledFor(TRACE)) {
    442             forcedLog(logger, TRACE, format(pattern, valueOf(argument)));
    443         }
    444     }
    445
    446     /**
    447      * Log a parameterized message at trace level.
    448      * @param logger logger, may not be null.
    449      * @param pattern pattern, may be null.
    450      * @param argument a value to be formatted and substituted.
    451      */
    452     public static void trace(final Logger logger, final String pattern,
    453         final Object argument) {
    454         if (logger.isEnabledFor(TRACE)) {
    455             forcedLog(logger, TRACE, format(pattern, argument));
    456         }
    457     }
    458
    459     /**
    460      * Log a parameterized message at trace level.
    461      * @param logger logger, may not be null.
    462      * @param pattern pattern, may be null.
    463      * @param arg0 a value to be formatted and substituted.
    464      * @param arg1 a value to be formatted and substituted.
    465      */
    466     public static void trace(final Logger logger, final String pattern,
    467         final Object arg0, final Object arg1) {
    468         if (logger.isEnabledFor(TRACE)) {
    469             forcedLog(logger, TRACE,
    470                     format(pattern, toArray(arg0, arg1)));
    471         }
    472     }
    473
    474     /**
    475      * Log a parameterized message at trace level.
    476      * @param logger logger, may not be null.
    477      * @param pattern pattern, may be null.
    478      * @param arg0 a value to be formatted and substituted.
    479      * @param arg1 a value to be formatted and substituted.
    480      * @param arg2 a value to be formatted and substituted.
    481      */
    482     public static void trace(final Logger logger, final String pattern,
    483         final Object arg0, final Object arg1, final Object arg2) {
    484         if (logger.isEnabledFor(TRACE)) {
    485             forcedLog(logger, TRACE,
    486                     format(pattern, toArray(arg0, arg1, arg2)));
    487         }
    488     }
    489
    490     /**
    491      * Log a parameterized message at trace level.
    492      * @param logger logger, may not be null.
    493      * @param pattern pattern, may be null.
    494      * @param arg0 a value to be formatted and substituted.
    495      * @param arg1 a value to be formatted and substituted.
    496      * @param arg2 a value to be formatted and substituted.
    497      * @param arg3 a value to be formatted and substituted.
    498      */
    499     public static void trace(final Logger logger, final String pattern,
    500         final Object arg0, final Object arg1, final Object arg2,
    501         final Object arg3) {
    502         if (logger.isEnabledFor(TRACE)) {
    503             forcedLog(logger, TRACE,
    504                     format(pattern, toArray(arg0, arg1, arg2, arg3)));
    505         }
    506     }
    507
    508     /**
    509      * Log a parameterized message at debug level.
    510      * @param logger logger, may not be null.
    511      * @param pattern pattern, may be null.
    512      * @param argument a value to be formatted and substituted.
    513      */
    514     public static void debug(final Logger logger, final String pattern,
    515         final boolean argument) {
    516         if (logger.isDebugEnabled()) {
    517             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    518         }
    519     }
    520
    521     /**
    522      * Log a parameterized message at debug level.
    523      * @param logger logger, may not be null.
    524      * @param pattern pattern, may be null.
    525      * @param argument a value to be formatted and substituted.
    526      */
    527     public static void debug(final Logger logger, final String pattern,
    528         final char argument) {
    529         if (logger.isDebugEnabled()) {
    530             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    531         }
    532     }
    533
    534     /**
    535      * Log a parameterized message at debug level.
    536      * @param logger logger, may not be null.
    537      * @param pattern pattern, may be null.
    538      * @param argument a value to be formatted and substituted.
    539      */
    540     public static void debug(final Logger logger, final String pattern,
    541         final byte argument) {
    542         if (logger.isDebugEnabled()) {
    543             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    544         }
    545     }
    546
    547     /**
    548      * Log a parameterized message at debug level.
    549      * @param logger logger, may not be null.
    550      * @param pattern pattern, may be null.
    551      * @param argument a value to be formatted and substituted.
    552      */
    553     public static void debug(final Logger logger, final String pattern,
    554         final short argument) {
    555         if (logger.isDebugEnabled()) {
    556             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    557         }
    558     }
    559
    560     /**
    561      * Log a parameterized message at debug level.
    562      * @param logger logger, may not be null.
    563      * @param pattern pattern, may be null.
    564      * @param argument a value to be formatted and substituted.
    565      */
    566     public static void debug(final Logger logger, final String pattern,
    567         final int argument) {
    568         if (logger.isDebugEnabled()) {
    569             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    570         }
    571     }
    572
    573     /**
    574      * Log a parameterized message at debug level.
    575      * @param logger logger, may not be null.
    576      * @param pattern pattern, may be null.
    577      * @param argument a value to be formatted and substituted.
    578      */
    579     public static void debug(final Logger logger, final String pattern,
    580         final long argument) {
    581         if (logger.isDebugEnabled()) {
    582             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    583         }
    584     }
    585
    586     /**
    587      * Log a parameterized message at debug level.
    588      * @param logger logger, may not be null.
    589      * @param pattern pattern, may be null.
    590      * @param argument a value to be formatted and substituted.
    591      */
    592     public static void debug(final Logger logger, final String pattern,
    593         final float argument) {
    594         if (logger.isDebugEnabled()) {
    595             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    596         }
    597     }
    598
    599     /**
    600      * Log a parameterized message at debug level.
    601      * @param logger logger, may not be null.
    602      * @param pattern pattern, may be null.
    603      * @param argument a value to be formatted and substituted.
    604      */
    605     public static void debug(final Logger logger, final String pattern,
    606         final double argument) {
    607         if (logger.isDebugEnabled()) {
    608             forcedLog(logger, Level.DEBUG, format(pattern, valueOf(argument)));
    609         }
    610     }
    611
    612     /**
    613      * Log a parameterized message at debug level.
    614      * @param logger logger, may not be null.
    615      * @param pattern pattern, may be null.
    616      * @param argument a value to be formatted and substituted.
    617      */
    618     public static void debug(final Logger logger, final String pattern,
    619         final Object argument) {
    620         if (logger.isDebugEnabled()) {
    621             forcedLog(logger, Level.DEBUG, format(pattern, argument));
    622         }
    623     }
    624
    625     /**
    626      * Log a parameterized message at debug level.
    627      * @param logger logger, may not be null.
    628      * @param pattern pattern, may be null.
    629      * @param arg0 a value to be formatted and substituted.
    630      * @param arg1 a value to be formatted and substituted.
    631      */
    632     public static void debug(final Logger logger, final String pattern,
    633         final Object arg0, final Object arg1) {
    634         if (logger.isDebugEnabled()) {
    635             forcedLog(logger, Level.DEBUG,
    636                     format(pattern, toArray(arg0, arg1)));
    637         }
    638     }
    639
    640     /**
    641      * Log a parameterized message at debug level.
    642      * @param logger logger, may not be null.
    643      * @param pattern pattern, may be null.
    644      * @param arg0 a value to be formatted and substituted.
    645      * @param arg1 a value to be formatted and substituted.
    646      * @param arg2 a value to be formatted and substituted.
    647      */
    648     public static void debug(final Logger logger, final String pattern,
    649         final Object arg0, final Object arg1, final Object arg2) {
    650         if (logger.isDebugEnabled()) {
    651             forcedLog(logger, Level.DEBUG,
    652                     format(pattern, toArray(arg0, arg1, arg2)));
    653         }
    654     }
    655
    656     /**
    657      * Log a parameterized message at debug level.
    658      * @param logger logger, may not be null.
    659      * @param pattern pattern, may be null.
    660      * @param arg0 a value to be formatted and substituted.
    661      * @param arg1 a value to be formatted and substituted.
    662      * @param arg2 a value to be formatted and substituted.
    663      * @param arg3 a value to be formatted and substituted.
    664      */
    665     public static void debug(final Logger logger, final String pattern,
    666         final Object arg0, final Object arg1, final Object arg2,
    667         final Object arg3) {
    668         if (logger.isDebugEnabled()) {
    669             forcedLog(logger, Level.DEBUG,
    670                     format(pattern, toArray(arg0, arg1, arg2, arg3)));
    671         }
    672     }
    673
    674     /**
    675      * Log a parameterized message at info level.
    676      * @param logger logger, may not be null.
    677      * @param pattern pattern, may be null.
    678      * @param argument a value to be formatted and substituted.
    679      */
    680     public static void info(final Logger logger, final String pattern,
    681         final boolean argument) {
    682         if (logger.isInfoEnabled()) {
    683             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    684         }
    685     }
    686
    687     /**
    688      * Log a parameterized message at info level.
    689      * @param logger logger, may not be null.
    690      * @param pattern pattern, may be null.
    691      * @param argument a value to be formatted and substituted.
    692      */
    693     public static void info(final Logger logger, final String pattern,
    694         final char argument) {
    695         if (logger.isInfoEnabled()) {
    696             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    697         }
    698     }
    699
    700     /**
    701      * Log a parameterized message at info level.
    702      * @param logger logger, may not be null.
    703      * @param pattern pattern, may be null.
    704      * @param argument a value to be formatted and substituted.
    705      */
    706     public static void info(final Logger logger, final String pattern,
    707         final byte argument) {
    708         if (logger.isInfoEnabled()) {
    709             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    710         }
    711     }
    712
    713     /**
    714      * Log a parameterized message at info level.
    715      * @param logger logger, may not be null.
    716      * @param pattern pattern, may be null.
    717      * @param argument a value to be formatted and substituted.
    718      */
    719     public static void info(final Logger logger, final String pattern,
    720         final short argument) {
    721         if (logger.isInfoEnabled()) {
    722             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    723         }
    724     }
    725
    726     /**
    727      * Log a parameterized message at info level.
    728      * @param logger logger, may not be null.
    729      * @param pattern pattern, may be null.
    730      * @param argument a value to be formatted and substituted.
    731      */
    732     public static void info(final Logger logger, final String pattern,
    733         final int argument) {
    734         if (logger.isInfoEnabled()) {
    735             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    736         }
    737     }
    738
    739     /**
    740      * Log a parameterized message at info level.
    741      * @param logger logger, may not be null.
    742      * @param pattern pattern, may be null.
    743      * @param argument a value to be formatted and substituted.
    744      */
    745     public static void info(final Logger logger, final String pattern,
    746         final long argument) {
    747         if (logger.isInfoEnabled()) {
    748             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    749         }
    750     }
    751
    752     /**
    753      * Log a parameterized message at info level.
    754      * @param logger logger, may not be null.
    755      * @param pattern pattern, may be null.
    756      * @param argument a value to be formatted and substituted.
    757      */
    758     public static void info(final Logger logger, final String pattern,
    759         final float argument) {
    760         if (logger.isInfoEnabled()) {
    761             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    762         }
    763     }
    764
    765     /**
    766      * Log a parameterized message at info level.
    767      * @param logger logger, may not be null.
    768      * @param pattern pattern, may be null.
    769      * @param argument a value to be formatted and substituted.
    770      */
    771     public static void info(final Logger logger, final String pattern,
    772         final double argument) {
    773         if (logger.isInfoEnabled()) {
    774             forcedLog(logger, Level.INFO, format(pattern, valueOf(argument)));
    775         }
    776     }
    777
    778     /**
    779      * Log a parameterized message at info level.
    780      * @param logger logger, may not be null.
    781      * @param pattern pattern, may be null.
    782      * @param argument a value to be formatted and substituted.
    783      */
    784     public static void info(final Logger logger, final String pattern,
    785         final Object argument) {
    786         if (logger.isInfoEnabled()) {
    787             forcedLog(logger, Level.INFO, format(pattern, argument));
    788         }
    789     }
    790
    791     /**
    792      * Log a parameterized message at info level.
    793      * @param logger logger, may not be null.
    794      * @param pattern pattern, may be null.
    795      * @param arg0 a value to be formatted and substituted.
    796      * @param arg1 a value to be formatted and substituted.
    797      */
    798     public static void info(final Logger logger, final String pattern,
    799         final Object arg0, final Object arg1) {
    800         if (logger.isInfoEnabled()) {
    801             forcedLog(logger, Level.INFO, format(pattern, toArray(arg0, arg1)));
    802         }
    803     }
    804
    805     /**
    806      * Log a parameterized message at info level.
    807      * @param logger logger, may not be null.
    808      * @param pattern pattern, may be null.
    809      * @param arg0 a value to be formatted and substituted.
    810      * @param arg1 a value to be formatted and substituted.
    811      * @param arg2 a value to be formatted and substituted.
    812      */
    813     public static void info(final Logger logger, final String pattern,
    814         final Object arg0, final Object arg1, final Object arg2) {
    815         if (logger.isInfoEnabled()) {
    816             forcedLog(logger, Level.INFO, format(pattern,
    817                     toArray(arg0, arg1, arg2)));
    818         }
    819     }
    820
    821     /**
    822      * Log a parameterized message at info level.
    823      * @param logger logger, may not be null.
    824      * @param pattern pattern, may be null.
    825      * @param arg0 a value to be formatted and substituted.
    826      * @param arg1 a value to be formatted and substituted.
    827      * @param arg2 a value to be formatted and substituted.
    828      * @param arg3 a value to be formatted and substituted.
    829      */
    830     public static void info(final Logger logger, final String pattern,
    831         final Object arg0, final Object arg1, final Object arg2,
    832         final Object arg3) {
    833         if (logger.isInfoEnabled()) {
    834             forcedLog(logger, Level.INFO, format(pattern,
    835                     toArray(arg0, arg1, arg2, arg3)));
    836         }
    837     }
    838
    839     /**
    840      * Log a parameterized message at warn level.
    841      * @param logger logger, may not be null.
    842      * @param pattern pattern, may be null.
    843      * @param argument a value to be formatted and substituted.
    844      */
    845     public static void warn(final Logger logger, final String pattern,
    846         final boolean argument) {
    847         if (logger.isEnabledFor(Level.WARN)) {
    848             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    849         }
    850     }
    851
    852     /**
    853      * Log a parameterized message at warn level.
    854      * @param logger logger, may not be null.
    855      * @param pattern pattern, may be null.
    856      * @param argument a value to be formatted and substituted.
    857      */
    858     public static void warn(final Logger logger, final String pattern,
    859         final char argument) {
    860         if (logger.isEnabledFor(Level.WARN)) {
    861             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    862         }
    863     }
    864
    865     /**
    866      * Log a parameterized message at warn level.
    867      * @param logger logger, may not be null.
    868      * @param pattern pattern, may be null.
    869      * @param argument a value to be formatted and substituted.
    870      */
    871     public static void warn(final Logger logger, final String pattern,
    872         final byte argument) {
    873         if (logger.isEnabledFor(Level.WARN)) {
    874             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    875         }
    876     }
    877
    878     /**
    879      * Log a parameterized message at warn level.
    880      * @param logger logger, may not be null.
    881      * @param pattern pattern, may be null.
    882      * @param argument a value to be formatted and substituted.
    883      */
    884     public static void warn(final Logger logger, final String pattern,
    885         final short argument) {
    886         if (logger.isEnabledFor(Level.WARN)) {
    887             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    888         }
    889     }
    890
    891     /**
    892      * Log a parameterized message at warn level.
    893      * @param logger logger, may not be null.
    894      * @param pattern pattern, may be null.
    895      * @param argument a value to be formatted and substituted.
    896      */
    897     public static void warn(final Logger logger, final String pattern,
    898         final int argument) {
    899         if (logger.isEnabledFor(Level.WARN)) {
    900             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    901         }
    902     }
    903
    904     /**
    905      * Log a parameterized message at warn level.
    906      * @param logger logger, may not be null.
    907      * @param pattern pattern, may be null.
    908      * @param argument a value to be formatted and substituted.
    909      */
    910     public static void warn(final Logger logger, final String pattern,
    911         final long argument) {
    912         if (logger.isEnabledFor(Level.WARN)) {
    913             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    914         }
    915     }
    916
    917     /**
    918      * Log a parameterized message at warn level.
    919      * @param logger logger, may not be null.
    920      * @param pattern pattern, may be null.
    921      * @param argument a value to be formatted and substituted.
    922      */
    923     public static void warn(final Logger logger, final String pattern,
    924         final float argument) {
    925         if (logger.isEnabledFor(Level.WARN)) {
    926             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    927         }
    928     }
    929
    930     /**
    931      * Log a parameterized message at warn level.
    932      * @param logger logger, may not be null.
    933      * @param pattern pattern, may be null.
    934      * @param argument a value to be formatted and substituted.
    935      */
    936     public static void warn(final Logger logger, final String pattern,
    937         final double argument) {
    938         if (logger.isEnabledFor(Level.WARN)) {
    939             forcedLog(logger, Level.WARN, format(pattern, valueOf(argument)));
    940         }
    941     }
    942
    943     /**
    944      * Log a parameterized message at warn level.
    945      * @param logger logger, may not be null.
    946      * @param pattern pattern, may be null.
    947      * @param argument a value to be formatted and substituted.
    948      */
    949     public static void warn(final Logger logger, final String pattern,
    950         final Object argument) {
    951         if (logger.isEnabledFor(Level.WARN)) {
    952             forcedLog(logger, Level.WARN, format(pattern, argument));
    953         }
    954     }
    955
    956     /**
    957      * Log a parameterized message at warn level.
    958      * @param logger logger, may not be null.
    959      * @param pattern pattern, may be null.
    960      * @param arg0 a value to be formatted and substituted.
    961      * @param arg1 a value to be formatted and substituted.
    962      */
    963     public static void warn(final Logger logger, final String pattern,
    964         final Object arg0, final Object arg1) {
    965         if (logger.isEnabledFor(Level.WARN)) {
    966             forcedLog(logger, Level.WARN,
    967                     format(pattern, toArray(arg0, arg1)));
    968         }
    969     }
    970
    971     /**
    972      * Log a parameterized message at warn level.
    973      * @param logger logger, may not be null.
    974      * @param pattern pattern, may be null.
    975      * @param arg0 a value to be formatted and substituted.
    976      * @param arg1 a value to be formatted and substituted.
    977      * @param arg2 a value to be formatted and substituted.
    978      */
    979     public static void warn(final Logger logger, final String pattern,
    980         final Object arg0, final Object arg1, final Object arg2) {
    981         if (logger.isEnabledFor(Level.WARN)) {
    982             forcedLog(logger, Level.WARN,
    983                     format(pattern, toArray(arg0, arg1, arg2)));
    984         }
    985     }
    986
    987     /**
    988      * Log a parameterized message at warn level.
    989      * @param logger logger, may not be null.
    990      * @param pattern pattern, may be null.
    991      * @param arg0 a value to be formatted and substituted.
    992      * @param arg1 a value to be formatted and substituted.
    993      * @param arg2 a value to be formatted and substituted.
    994      * @param arg3 a value to be formatted and substituted.
    995      */
    996     public static void warn(final Logger logger, final String pattern,
    997         final Object arg0, final Object arg1, final Object arg2,
    998         final Object arg3) {
    999         if (logger.isEnabledFor(Level.WARN)) {
    1000             forcedLog(logger, Level.WARN, format(pattern,
    1001                     toArray(arg0, arg1, arg2, arg3)));
    1002         }
    1003     }
    1004
    1005     /**
    1006       * Log a parameterized message at specified level.
    1007       * @param logger logger, may not be null.
    1008       * @param level level, may not be null.
    1009       * @param pattern pattern, may be null.
    1010      * @param parameters parameters to the log message.
    1011       */
    1012     public static void log(final Logger logger,
    1013                              final Level level,
    1014                              final String pattern,
    1015                              final Object[] parameters) {
    1016         if (logger.isEnabledFor(level)) {
    1017             forcedLog(logger, level,
    1018                     format(pattern, parameters));
    1019         }
    1020     }
    1021
    1022     /**
    1023       * Log a parameterized message at specified level.
    1024       * @param logger logger, may not be null.
    1025       * @param level level, may not be null.
    1026      * @param t throwable, may be null.
    1027       * @param pattern pattern, may be null.
    1028      * @param parameters parameters to the log message.
    1029       */
    1030     public static void log(final Logger logger,
    1031                              final Level level,
    1032                              final Throwable t,
    1033                              final String pattern,
    1034                              final Object[] parameters) {
    1035         if (logger.isEnabledFor(level)) {
    1036             forcedLog(logger, level,
    1037                     format(pattern, parameters), t);
    1038         }
    1039     }
    1040
    1041     /**
    1042       * Log a parameterized message at specified level.
    1043       * @param logger logger, may not be null.
    1044       * @param level level, may not be null.
    1045       * @param pattern pattern, may be null.
    1046      * @param param1 parameter to the log message.
    1047       */
    1048     public static void log(final Logger logger,
    1049                              final Level level,
    1050                              final String pattern,
    1051                              final Object param1) {
    1052         if (logger.isEnabledFor(level)) {
    1053             forcedLog(logger, level,
    1054                     format(pattern, toArray(param1)));
    1055         }
    1056     }
    1057
    1058     /**
    1059       * Log a parameterized message at specified level.
    1060       * @param logger logger, may not be null.
    1061       * @param level level, may not be null.
    1062       * @param pattern pattern, may be null.
    1063      * @param param1 parameter to the log message.
    1064       */
    1065     public static void log(final Logger logger,
    1066                              final Level level,
    1067                              final String pattern,
    1068                              final boolean param1) {
    1069         if (logger.isEnabledFor(level)) {
    1070             forcedLog(logger, level,
    1071                     format(pattern, toArray(valueOf(param1))));
    1072         }
    1073     }
    1074
    1075
    1076     /**
    1077       * Log a parameterized message at specified level.
    1078       * @param logger logger, may not be null.
    1079       * @param level level, may not be null.
    1080       * @param pattern pattern, may be null.
    1081      * @param param1 parameter to the log message.
    1082       */
    1083     public static void log(final Logger logger,
    1084                              final Level level,
    1085                              final String pattern,
    1086                              final byte param1) {
    1087         if (logger.isEnabledFor(level)) {
    1088             forcedLog(logger, level,
    1089                     format(pattern, toArray(valueOf(param1))));
    1090         }
    1091     }
    1092
    1093
    1094     /**
    1095       * Log a parameterized message at specified level.
    1096       * @param logger logger, may not be null.
    1097       * @param level level, may not be null.
    1098       * @param pattern pattern, may be null.
    1099      * @param param1 parameter to the log message.
    1100       */
    1101     public static void log(final Logger logger,
    1102                              final Level level,
    1103                              final String pattern,
    1104                              final char param1) {
    1105         if (logger.isEnabledFor(level)) {
    1106             forcedLog(logger, level,
    1107                     format(pattern, toArray(valueOf(param1))));
    1108         }
    1109     }
    1110
    1111     /**
    1112       * Log a parameterized message at specified level.
    1113       * @param logger logger, may not be null.
    1114       * @param level level, may not be null.
    1115       * @param pattern pattern, may be null.
    1116      * @param param1 parameter to the log message.
    1117       */
    1118     public static void log(final Logger logger,
    1119                              final Level level,
    1120                              final String pattern,
    1121                              final short param1) {
    1122         if (logger.isEnabledFor(level)) {
    1123             forcedLog(logger, level,
    1124                     format(pattern, toArray(valueOf(param1))));
    1125         }
    1126     }
    1127
    1128     /**
    1129       * Log a parameterized message at specified level.
    1130       * @param logger logger, may not be null.
    1131       * @param level level, may not be null.
    1132       * @param pattern pattern, may be null.
    1133      * @param param1 parameter to the log message.
    1134       */
    1135     public static void log(final Logger logger,
    1136                              final Level level,
    1137                              final String pattern,
    1138                              final int param1) {
    1139         if (logger.isEnabledFor(level)) {
    1140             forcedLog(logger, level,
    1141                     format(pattern, toArray(valueOf(param1))));
    1142         }
    1143     }
    1144
    1145
    1146     /**
    1147       * Log a parameterized message at specified level.
    1148       * @param logger logger, may not be null.
    1149       * @param level level, may not be null.
    1150       * @param pattern pattern, may be null.
    1151      * @param param1 parameter to the log message.
    1152       */
    1153     public static void log(final Logger logger,
    1154                              final Level level,
    1155                              final String pattern,
    1156                              final long param1) {
    1157         if (logger.isEnabledFor(level)) {
    1158             forcedLog(logger, level,
    1159                     format(pattern, toArray(valueOf(param1))));
    1160         }
    1161     }
    1162
    1163
    1164     /**
    1165       * Log a parameterized message at specified level.
    1166       * @param logger logger, may not be null.
    1167       * @param level level, may not be null.
    1168       * @param pattern pattern, may be null.
    1169      * @param param1 parameter to the log message.
    1170       */
    1171     public static void log(final Logger logger,
    1172                              final Level level,
    1173                              final String pattern,
    1174                              final float param1) {
    1175         if (logger.isEnabledFor(level)) {
    1176             forcedLog(logger, level,
    1177                     format(pattern, toArray(valueOf(param1))));
    1178         }
    1179     }
    1180
    1181
    1182     /**
    1183       * Log a parameterized message at specified level.
    1184       * @param logger logger, may not be null.
    1185       * @param level level, may not be null.
    1186       * @param pattern pattern, may be null.
    1187      * @param param1 parameter to the log message.
    1188       */
    1189     public static void log(final Logger logger,
    1190                              final Level level,
    1191                              final String pattern,
    1192                              final double param1) {
    1193         if (logger.isEnabledFor(level)) {
    1194             forcedLog(logger, level,
    1195                     format(pattern, toArray(valueOf(param1))));
    1196         }
    1197     }
    1198
    1199
    1200     /**
    1201      * Log a parameterized message at specified level.
    1202      * @param logger logger, may not be null.
    1203      * @param level level, may not be null.
    1204      * @param pattern pattern, may be null.
    1205      * @param arg0 a value to be formatted and substituted.
    1206      * @param arg1 a value to be formatted and substituted.
    1207      */
    1208     public static void log(final Logger logger,
    1209                             final Level level,
    1210                             final String pattern,
    1211         final Object arg0, final Object arg1) {
    1212         if (logger.isEnabledFor(level)) {
    1213             forcedLog(logger, level,
    1214                     format(pattern, toArray(arg0, arg1)));
    1215         }
    1216     }
    1217
    1218     /**
    1219      * Log a parameterized message at specifed level.
    1220      * @param logger logger, may not be null.
    1221      * @param level level, may not be null.
    1222      * @param pattern pattern, may be null.
    1223      * @param arg0 a value to be formatted and substituted.
    1224      * @param arg1 a value to be formatted and substituted.
    1225      * @param arg2 a value to be formatted and substituted.
    1226      */
    1227     public static void log(final Logger logger,
    1228                            final Level level,
    1229                            final String pattern,
    1230         final Object arg0, final Object arg1, final Object arg2) {
    1231         if (logger.isEnabledFor(level)) {
    1232             forcedLog(logger, level,
    1233                     format(pattern, toArray(arg0, arg1, arg2)));
    1234         }
    1235     }
    1236
    1237     /**
    1238      * Log a parameterized message at specified level.
    1239      * @param logger logger, may not be null.
    1240      * @param pattern pattern, may be null.
    1241      * @param level level, may not be null.
    1242      * @param arg0 a value to be formatted and substituted.
    1243      * @param arg1 a value to be formatted and substituted.
    1244      * @param arg2 a value to be formatted and substituted.
    1245      * @param arg3 a value to be formatted and substituted.
    1246      */
    1247     public static void log(final Logger logger,
    1248                            final Level level,
    1249                            final String pattern,
    1250         final Object arg0, final Object arg1, final Object arg2,
    1251         final Object arg3) {
    1252         if (logger.isEnabledFor(level)) {
    1253             forcedLog(logger, level, format(pattern,
    1254                     toArray(arg0, arg1, arg2, arg3)));
    1255         }
    1256     }
    1257
    1258
    1259     /**
    1260       * Log a parameterized message using a pattern from a resource bundle.
    1261       * @param logger logger, may not be null.
    1262       * @param level level, may not be null.
    1263       * @param bundleName resource bundle name, may be null.
    1264      * @param key key, may be null.
    1265      * @param parameters parameters to the log message.
    1266       */
    1267     public static void logrb(final Logger logger,
    1268                              final Level level,
    1269                              final String bundleName,
    1270                              final String key,
    1271                              final Object[] parameters) {
    1272         if (logger.isEnabledFor(level)) {
    1273             forcedLog(logger, level,
    1274                     format(bundleName, key, parameters));
    1275         }
    1276     }
    1277
    1278     /**
    1279       * Log a parameterized message using a pattern from a resource bundle.
    1280       * @param logger logger, may not be null.
    1281       * @param level level, may not be null.
    1282      * @param t throwable, may be null.
    1283       * @param bundleName resource bundle name, may be null.
    1284      * @param key key, may be null.
    1285      * @param parameters parameters to the log message.
    1286       */
    1287     public static void logrb(final Logger logger,
    1288                              final Level level,
    1289                              final Throwable t,
    1290                              final String bundleName,
    1291                              final String key,
    1292                              final Object[] parameters) {
    1293         if (logger.isEnabledFor(level)) {
    1294             forcedLog(logger, level,
    1295                     format(bundleName, key, parameters), t);
    1296         }
    1297     }
    1298
    1299     /**
    1300       * Log a parameterized message using a pattern from a resource bundle.
    1301       * @param logger logger, may not be null.
    1302       * @param level level, may not be null.
    1303       * @param bundleName resource bundle name, may be null.
    1304      * @param key key, may be null.
    1305      * @param param1 Parameter to the log message.
    1306       */
    1307     public static void logrb(final Logger logger,
    1308                              final Level level,
    1309                              final String bundleName,
    1310                              final String key,
    1311                              final Object param1) {
    1312         if (logger.isEnabledFor(level)) {
    1313             forcedLog(logger, level,
    1314                     format(bundleName, key, toArray(param1)));
    1315         }
    1316     }
    1317
    1318     /**
    1319       * Log a parameterized message using a pattern from a resource bundle.
    1320       * @param logger logger, may not be null.
    1321       * @param level level, may not be null.
    1322       * @param bundleName resource bundle name, may be null.
    1323      * @param key key, may be null.
    1324      * @param param1 Parameter to the log message.
    1325       */
    1326     public static void logrb(final Logger logger,
    1327                              final Level level,
    1328                              final String bundleName,
    1329                              final String key,
    1330                              final boolean param1) {
    1331         if (logger.isEnabledFor(level)) {
    1332             forcedLog(logger, level,
    1333                     format(bundleName, key, toArray(valueOf(param1))));
    1334         }
    1335     }
    1336
    1337     /**
    1338       * Log a parameterized message using a pattern from a resource bundle.
    1339       * @param logger logger, may not be null.
    1340       * @param level level, may not be null.
    1341       * @param bundleName resource bundle name, may be null.
    1342      * @param key key, may be null.
    1343      * @param param1 Parameter to the log message.
    1344       */
    1345     public static void logrb(final Logger logger,
    1346                              final Level level,
    1347                              final String bundleName,
    1348                              final String key,
    1349                              final char param1) {
    1350         if (logger.isEnabledFor(level)) {
    1351             forcedLog(logger, level,
    1352                     format(bundleName, key, toArray(valueOf(param1))));
    1353         }
    1354     }
    1355
    1356     /**
    1357       * Log a parameterized message using a pattern from a resource bundle.
    1358       * @param logger logger, may not be null.
    1359       * @param level level, may not be null.
    1360       * @param bundleName resource bundle name, may be null.
    1361      * @param key key, may be null.
    1362      * @param param1 Parameter to the log message.
    1363       */
    1364     public static void logrb(final Logger logger,
    1365                              final Level level,
    1366                              final String bundleName,
    1367                              final String key,
    1368                              final byte param1) {
    1369         if (logger.isEnabledFor(level)) {
    1370             forcedLog(logger, level,
    1371                     format(bundleName, key, toArray(valueOf(param1))));
    1372         }
    1373     }
    1374
    1375     /**
    1376       * Log a parameterized message using a pattern from a resource bundle.
    1377       * @param logger logger, may not be null.
    1378       * @param level level, may not be null.
    1379       * @param bundleName resource bundle name, may be null.
    1380      * @param key key, may be null.
    1381      * @param param1 Parameter to the log message.
    1382       */
    1383     public static void logrb(final Logger logger,
    1384                              final Level level,
    1385                              final String bundleName,
    1386                              final String key,
    1387                              final short param1) {
    1388         if (logger.isEnabledFor(level)) {
    1389             forcedLog(logger, level,
    1390                     format(bundleName, key, toArray(valueOf(param1))));
    1391         }
    1392     }
    1393
    1394     /**
    1395       * Log a parameterized message using a pattern from a resource bundle.
    1396       * @param logger logger, may not be null.
    1397       * @param level level, may not be null.
    1398       * @param bundleName resource bundle name, may be null.
    1399      * @param key key, may be null.
    1400      * @param param1 Parameter to the log message.
    1401       */
    1402     public static void logrb(final Logger logger,
    1403                              final Level level,
    1404                              final String bundleName,
    1405                              final String key,
    1406                              final int param1) {
    1407         if (logger.isEnabledFor(level)) {
    1408             forcedLog(logger, level,
    1409                     format(bundleName, key, toArray(valueOf(param1))));
    1410         }
    1411     }
    1412
    1413     /**
    1414       * Log a parameterized message using a pattern from a resource bundle.
    1415       * @param logger logger, may not be null.
    1416       * @param level level, may not be null.
    1417       * @param bundleName resource bundle name, may be null.
    1418      * @param key key, may be null.
    1419      * @param param1 Parameter to the log message.
    1420       */
    1421     public static void logrb(final Logger logger,
    1422                              final Level level,
    1423                              final String bundleName,
    1424                              final String key,
    1425                              final long param1) {
    1426         if (logger.isEnabledFor(level)) {
    1427             forcedLog(logger, level,
    1428                     format(bundleName, key, toArray(valueOf(param1))));
    1429         }
    1430     }
    1431     /**
    1432       * Log a parameterized message using a pattern from a resource bundle.
    1433       * @param logger logger, may not be null.
    1434       * @param level level, may not be null.
    1435       * @param bundleName resource bundle name, may be null.
    1436      * @param key key, may be null.
    1437      * @param param1 Parameter to the log message.
    1438       */
    1439     public static void logrb(final Logger logger,
    1440                              final Level level,
    1441                              final String bundleName,
    1442                              final String key,
    1443                              final float param1) {
    1444         if (logger.isEnabledFor(level)) {
    1445             forcedLog(logger, level,
    1446                     format(bundleName, key, toArray(valueOf(param1))));
    1447         }
    1448     }
    1449
    1450
    1451     /**
    1452       * Log a parameterized message using a pattern from a resource bundle.
    1453       * @param logger logger, may not be null.
    1454       * @param level level, may not be null.
    1455       * @param bundleName resource bundle name, may be null.
    1456      * @param key key, may be null.
    1457      * @param param1 Parameter to the log message.
    1458       */
    1459     public static void logrb(final Logger logger,
    1460                              final Level level,
    1461                              final String bundleName,
    1462                              final String key,
    1463                              final double param1) {
    1464         if (logger.isEnabledFor(level)) {
    1465             forcedLog(logger, level,
    1466                     format(bundleName, key, toArray(valueOf(param1))));
    1467         }
    1468     }
    1469
    1470     /**
    1471       * Log a parameterized message using a pattern from a resource bundle.
    1472       * @param logger logger, may not be null.
    1473       * @param level level, may not be null.
    1474       * @param bundleName resource bundle name, may be null.
    1475      * @param key key, may be null.
    1476      * @param param0 Parameter to the log message.
    1477      * @param param1 Parameter to the log message.
    1478       */
    1479     public static void logrb(final Logger logger,
    1480                              final Level level,
    1481                              final String bundleName,
    1482                              final String key,
    1483                              final Object param0,
    1484                              final Object param1) {
    1485         if (logger.isEnabledFor(level)) {
    1486             forcedLog(logger, level,
    1487                     format(bundleName, key, toArray(param0, param1)));
    1488         }
    1489     }
    1490
    1491
    1492     /**
    1493       * Log a parameterized message using a pattern from a resource bundle.
    1494       * @param logger logger, may not be null.
    1495       * @param level level, may not be null.
    1496       * @param bundleName resource bundle name, may be null.
    1497      * @param key key, may be null.
    1498      * @param param0 Parameter to the log message.
    1499      * @param param1 Parameter to the log message.
    1500      * @param param2 Parameter to the log message.
    1501       */
    1502     public static void logrb(final Logger logger,
    1503                              final Level level,
    1504                              final String bundleName,
    1505                              final String key,
    1506                              final Object param0,
    1507                              final Object param1,
    1508                              final Object param2) {
    1509         if (logger.isEnabledFor(level)) {
    1510             forcedLog(logger, level,
    1511                     format(bundleName, key, toArray(param0, param1, param2)));
    1512         }
    1513     }
    1514
    1515
    1516     /**
    1517       * Log a parameterized message using a pattern from a resource bundle.
    1518       * @param logger logger, may not be null.
    1519       * @param level level, may not be null.
    1520       * @param bundleName resource bundle name, may be null.
    1521      * @param key key, may be null.
    1522      * @param param0 Parameter to the log message.
    1523      * @param param1 Parameter to the log message.
    1524      * @param param2 Parameter to the log message.
    1525      * @param param3 Parameter to the log message.
    1526       */
    1527     public static void logrb(final Logger logger,
    1528                              final Level level,
    1529                              final String bundleName,
    1530                              final String key,
    1531                              final Object param0,
    1532                              final Object param1,
    1533                              final Object param2,
    1534                              final Object param3) {
    1535         if (logger.isEnabledFor(level)) {
    1536             forcedLog(logger, level,
    1537                     format(bundleName, key,
    1538                             toArray(param0, param1, param2, param3)));
    1539         }
    1540     }
    1541 }