log.go
func LogMessage(message string, keyvals ...keyval) *logmessage {
	return &logmessage{m: message, kv: keyvals}
}
func LogMessage(message string, keyvals ...keyval) *logmessage {
	return &logmessage{m: message, kv: keyvals}
}
// LogMessage creates a message that complies with fmt.Stringer but also
// includes a message and key/value pairs for structured logging.
// Use it in trace.LazyLog:
//
// 		t.LazyLog(trace.LogMessage("found", trace.KeyValue("file", name)), false)