var DefaultLogger … var DiscardLogger … type Logger … // PrintfLogger wraps a Printf-based logger (such as the standard library "log") // into an implementation of the Logger interface which logs errors only. func PrintfLogger(l interface{ … } // VerbosePrintfLogger wraps a Printf-based logger (such as the standard library // "log") into an implementation of the Logger interface which logs everything. func VerbosePrintfLogger(l interface{ … } type printfLogger … func (pl printfLogger) Info(msg string, keysAndValues ...interface{ … } func (pl printfLogger) Error(err error, msg string, keysAndValues ...interface{ … } // formatString returns a logfmt-like format string for the number of // key/values. func formatString(numKeysAndValues int) string { … } // formatTimes formats any time.Time values as RFC3339. func formatTimes(keysAndValues []interface{ … }