docs: public static void main(String[] args){
  
      // -- STRESS TEST THREADS --
      Runnable[] tasks = new Runnable[1000];
      for(int i=0; i<tasks.length; i++){
        final int fI = i;
        tasks[i] = new Runnable(){
          public void run(){
            startTrack("Runnable " + fI);
            log(Thread.currentThread().getId());
            log("message " + fI + ".1");
            log("message " + fI + ".2");
            log("message " + fI + ".3");
            log(FORCE,"message " + fI + ".4");
            log("message " + fI + ".5");
            forceTrack("Runnable " + fI + ".1");
            endTrack("Runnable " + fI + ".1");
            forceTrack("Runnable " + fI + ".2");
            log("a message");
            endTrack("Runnable " + fI + ".2");
            forceTrack("Runnable " + fI + ".3");
            log("a message");
            log(FORCE,"A forced message");
            endTrack("Runnable " + fI + ".3");
            endTrack("Runnable " + fI);
          }
        };
      }
      startTrack("Wrapper");
      for(int i=0; i<100; i++){
        Util.threadAndRun(new ArrayIterable(tasks), 100);
      }
      endTrack("Wrapper");
      System.exit(1);
      
      
      forceTrack("Track 1");
      log("tag", ERR, "hello world");
      startTrack("Hidden");
      startTrack("Subhidden");
      endTrack("Subhidden");
      endTrack("Hidden");
      startTrack(FORCE, "Shown");
      startTrack(FORCE,"Subshown");
      endTrack("Subshown");
      endTrack("Shown");
      log("^shown should have appeared above");
      startTrack("Track 1.1");
      log(WARN, "some", "something in 1.1");
      log("some",ERR,"something in 1.1");
      log(FORCE,"some",WARN,"something in 1.1");
      log(WARN,FORCE,"some","something in 1.1");
      logf("format string %s then int %d", "hello", 7);
      endTrack("Track 1.1");
      startTrack();
      log("In an anonymous track");
      endTrack();
      endTrack("Track 1");
      log("outside of a track");
      log("these","channels","should","be","in",DBG,"alphabetical","order", "a log item with lots of channels");
      log("these","channels","should","be","in",DBG,"alphabetical","order", "a log item\nthat spans\nmultiple\nlines");
      log(DBG,"a last log item");
      log(ERR,null);
  
      //--Repeated Records
      RedwoodConfiguration.current().collapseExact().apply();
      //(simple case)
      forceTrack("Strict Equality");
      for(int i=0; i<100; i++){ log("this is a message"); }
      endTrack("Strict Equality");
      //(in-track change)
      forceTrack("Change");
      for(int i=0; i<10; i++){ log("this is a message"); }
      for(int i=0; i<10; i++){ log("this is a another message"); }
      for(int i=0; i<10; i++){ log("this is a third message"); }
      for(int i=0; i<5; i++){ log("this is a fourth message"); }
      log(FORCE,"this is a fourth message");
      for(int i=0; i<5; i++){ log("this is a fourth message"); }
      log("^middle 'fourth message' was forced");
      endTrack("Change");
      //(suppress tracks)
      forceTrack("Repeated Tracks");
      for(int i=0; i<100; i++){ startTrack("Track type 1"); log("a message"); endTrack("Track type 1"); }
      for(int i=0; i<100; i++){ startTrack("Track type 2"); log("a message"); endTrack("Track type 2"); }
      for(int i=0; i<100; i++){ startTrack("Track type 3"); log("a message"); endTrack("Track type 3"); }
      startTrack("Track type 3"); startTrack("nested"); log(FORCE,"this should show up"); endTrack("nested"); endTrack("Track type 3");
      for(int i=0; i<5; i++){ startTrack("Track type 3"); log(FORCE,"this should show up"); endTrack("Track type 3"); }
      log(WARN,"The log message 'this should show up' should show up 6 (5+1) times above");
      endTrack("Repeated Tracks");
      //(tracks with invisible things)
      Redwood.hideOnlyChannels(DBG);
      forceTrack("Hidden Subtracks");
      for(int i=0; i<100; i++){
        startTrack("Only has debug messages");
        log(DBG,"You shouldn't see me");
        endTrack("Only has debug messages");
      }
      log("You shouldn't see any other messages or 'skipped tracks' here");
      endTrack("Hidden Subtracks");
      //(fuzzy repeats)
      RedwoodConfiguration.standard().apply();
      RedwoodConfiguration.current().collapseApproximate().apply();
      forceTrack("Fuzzy Equality");
      for(int i=0; i<100; i++){ log("iter " + i + " ended with value " + (-34587292534.0+Math.sqrt(i)*3000000000.0)); }
      endTrack("Fuzzy Equality");
      forceTrack("Fuzzy Equality (timing)");
      for(int i=0; i<100; i++){
        log("iter " + i + " ended with value " + (-34587292534.0+Math.sqrt(i)*3000000000.0));
        try {
          Thread.sleep(50);
        } catch (InterruptedException e) { }
      }
      endTrack("Fuzzy Equality (timing)");
  
      //--Util Helper
      Util.log("hello world");
      Util.log(DBG, "hello world");
      Util.debug("hello world");
      Util.debug("atag", "hello world");
  
      //--Show Name at Track Finish
      Redwood.getHandler(ConsoleHandler.class).minLineCountForTrackNameReminder = 5;
      startTrack("Long Track");
      for(int i=0; i<10; i++){ log(FORCE,"contents of long track"); }
      endTrack("Long TracK");
      startTrack("Long Track");
      startTrack("But really this is the long one");
      try {
        Thread.sleep(3000);
      } catch (InterruptedException e) { }
      for(int i=0; i<10; i++){ log(FORCE,"contents of long track"); }
      endTrack("But really this is the long one");
      endTrack("Long TracK");
      Redwood.getHandler(ConsoleHandler.class).minLineCountForTrackNameReminder = 50;
  
      //--Multithreading
      ExecutorService exec = Executors.newFixedThreadPool(10);
      startThreads("name");
      for(int i=0; i<50; i++){
        final int theI = i;
        exec.execute(new Runnable(){
          public void run() {
            startTrack("Thread " + theI + " (" + Thread.currentThread().getId() + ")");
            for(int time=0; time<5; time++){
              log("tick " + time + " from " + theI + " (" + Thread.currentThread().getId() + ")");
              try {
                Thread.sleep(50);
              } catch (Exception e) {}
            }
            endTrack("Thread " + theI + " (" + Thread.currentThread().getId() + ")");
            finishThread();
          }
        });
  
      }
      exec.shutdown();
      try {
        exec.awaitTermination(Long.MAX_VALUE, TimeUnit.SECONDS);
      } catch (InterruptedException e) {}
      endThreads("name");
  
      //--System Streams
      Redwood.captureSystemStreams(true, true);
      System.out.println("Hello World");
      System.err.println("This is an error!");
  
      //--Neat Exit
      RedwoodConfiguration.standard().collapseExact().apply();
      //(on close)
      for(int i=0; i<100; i++){
  //      startTrack();
        log("stuff!");
  //      endTrack();
      }
      Util.exit(0);
      //(on exception)
      System.out.println("I'm going to exception soon (on purpose)");
      RedwoodConfiguration.current().neatExit().apply();
      startTrack("I should close");
      log(FORCE,"so I'm nonempty...");
      try {
        Thread.sleep(3000);
      } catch (InterruptedException e) { }
  		throw new IllegalArgumentException();
    }