code: private static void writeTraceHeaderInfo(PrintStream out) {
      final SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz YYYY");
  
      out.println("Date: "+dateFormat.format(new Date()));
  
      out.println("\nProcess ID: "+pid);
  
      out.println("\nSystem properties:");
      final Properties sysProps = System.getProperties();
      int maxPropNameLength = 0;
      for (Entry<Object, Object> entry : sysProps.entrySet()) {
        maxPropNameLength = Math.max(maxPropNameLength, ((String)entry.getKey()).length());
      }
      String propNameStringFormat = "%-"+maxPropNameLength+"."+maxPropNameLength+"s";
      for (Entry<Object, Object> entry : sysProps.entrySet()) {
        final String prop = String.format(propNameStringFormat, entry.getKey());
        final String value = (String)entry.getValue();
        out.println("|   "+prop+"  :-  "+value);
      }
  
  
      out.println("\nRuntime properties:");
      out.println( "Available processors: "+Runtime.getRuntime().availableProcessors());
      out.println("Total memory in bytes (now): "+Runtime.getRuntime().totalMemory());
      out.println("Free memory in bytes (now): "+Runtime.getRuntime().freeMemory());
      out.println("Max memory in bytes: "+Runtime.getRuntime().maxMemory());
  
      out.println("\nStack trace of initiating call:");
      try {
        throw new Exception();
      } catch(Exception e) {
        for (StackTraceElement element : e.getStackTrace()) {
          out.println("  "+element.getClassName()+"."+element.getMethodName()+"("+element.getFileName()+":"+element.getLineNumber()+")");
        }
      }
  
      out.println("\nVersion: "+Version.getVersion());
  
      out.println("\nTimeStamp    TID  ClientId     ObjectId  Class                                                                                      Data");
      out.println("======================================================================================================================================================================");
  
      out.flush();
    }
docs: Helper method to write trace header information to the specified {@link PrintStream}.
  
  @param out