docs: public static String format(String format, Object... args)
    {
      if(format == null) {
        return null;
      }
      if(format.isEmpty()) {
        return "";
      }
      if(args.length == 0) {
        return format;
      }
  
      for(int i = 0; i < args.length; i++) {
        if(args[i] instanceof Class) {
          args[i] = ((Class<?>)args[i]).getCanonicalName();
        }
        else if(args[i] instanceof Throwable) {
          String s = ((Throwable)args[i]).getMessage();
          if(s == null) {
            s = args[i].getClass().getCanonicalName();
          }
          args[i] = s;
        }
        else if(args[i] instanceof Thread) {
          Thread thread = (Thread)args[i];
          StringBuilder sb = new StringBuilder();
          sb.append(thread.getName());
          sb.append(':');
          sb.append(thread.getId());
          args[i] = sb.toString();
        }
        else if(args[i] instanceof File) {
          args[i] = ((File)args[i]).getAbsolutePath();
        }
      }
  
      try {
        return String.format(format, args);
      }
      catch(IllegalFormatException e) {
        log.error("Format operation aborted due to error on string format. Returns original, not formated string. Root cause is: ", e);
      }
      return format;
    }