code: protected PrintWriter getPrintWriter() {
          if ( printWriter == null || printStream != ChorusOut.out) {
              printWriter = new PrintWriter(ChorusOut.out);
              printStream = ChorusOut.out;
          }
          return printWriter;
      }
docs: This is an extension point to change Chorus output
  
  The user can provider their own OutputWriter which extends the default and
  overrides getPrintWriter() to return a writer configured for a different output stream
  
  n.b. this method will be called frequently so it is expected that the PrintWriter returned
  will generally be cached and reused by the implementation, but in some circumstances it is
  useful to be able to change the PrintWriter during the testing process so the details are
  left to the implementation
  
  @return a PrintWriter to use for all logging