code: public void log( Level level,
                       I18nResource message,
                       Object... params ) {
          if (message == null) return;
          switch (level) {
              case DEBUG:
                  debug(message.text(LOGGING_LOCALE.get(), params));
                  break;
              case ERROR:
                  error(message, params);
                  break;
              case INFO:
                  info(message, params);
                  break;
              case TRACE:
                  trace(message.text(LOGGING_LOCALE.get(), params));
                  break;
              case WARNING:
                  warn(message, params);
                  break;
              case OFF:
                  break;
          }
      }
docs: Log a message at the supplied level according to the specified format and (optional) parameters. The message should contain
  a pair of empty curly braces for each of the parameter, which should be passed in the correct order. This method is
  efficient and avoids superfluous object creation when the logger is disabled for the desired level.
  
  @param level the level at which to log
  @param message the (localized) message string
  @param params the parameter values that are to replace the variables in the format string