code: @SuppressWarnings("unchecked")
    public void prettyLog(RedwoodChannels channels, String description) {
      Redwood.startTrack(description);
  
      // sort keys by class name
      List<Class> keys = new LinkedList<Class>();
      for (Class<?> key : this.keySet()) {
        keys.add(key);
      }
      Collections.sort(keys,
          new Comparator<Class>(){
        public int compare(Class a, Class b) {
          return a.getCanonicalName().compareTo(b.getCanonicalName());
        }
      });
  
      // log key/value pairs
      for (Class key : keys) {
        String keyName = key.getCanonicalName().replace("class ", "");
        Object value = this.get(key);
        if (PrettyLogger.dispatchable(value)) {
          PrettyLogger.log(channels, keyName, value);
        } else {
          channels.logf("%s = %s", keyName, value);
        }
      }
      Redwood.endTrack(description);
    }
docs: {@inheritDoc}