func (t *Trace) Log() {
	endTime := time.Now()
	t.endTime = &endTime
	// an explicit logging request should dump all the steps out at the higher level
	if t.parentTrace == nil { // We don't start logging until Log or LogIfLong is called on the root trace
		t.logTrace()
	}
}
// Log is used to dump all the steps in the Trace. It also logs the nested trace messages using indentation.
// If the Trace is nested it is not immediately logged. Instead, it is logged when the trace it is nested within
// is logged.
Log is used to dump all the steps in the Trace. It also logs the nested trace messages using indentation.
If the Trace is nested it is not immediately logged. Instead, it is logged when the trace it is nested within
is logged.
// Log is used to dump all the steps in the Trace . It also logs the nested trace messages using indentation . // If the Trace is nested it is not immediately logged . Instead it is logged when the trace it is nested within // is logged .
func (t *Trace) Log() {
	endTime := time.Now()
	t.endTime = &endTime
	if t.parentTrace == nil { 
		t.logTrace()
	}
}
func ( t * Trace ) Log ( ) { endTime := time . Now ( ) t . endTime = & endTime if t . parentTrace == nil { t . logTrace ( ) } }
Log is used to dump all the steps in the Trace.
Log is used to dump all the steps in the Trace .
// an explicit logging request should dump all the steps out at the higher level // We don't start logging until Log or LogIfLong is called on the root trace