Вы можете использовать log.SetOutput(...)
с модулем записи аргументов, который печатает записи, используя нужный формат (например, встроенный RFC3999 или любой другой по вашему выбору), например:
const timeFormat = time.RFC3339
type logWriter struct{}
func (lw *logWriter) Write(bs []byte) (int, error) {
return fmt.Print(time.Now().UTC().Format(timeFormat), " | ", string(bs))
}
func main() {
log.SetFlags(0) // Omit default prefixes.
log.SetOutput(new(logWriter)) // Use our custom writer.
log.Printf("Hello, %s!", "World")
// 2018-09-18T14:50:40Z | Hello, World!
}
Вы можете изменить метку времени, используя другой формат, например:
const timeFormat = "Jan 2, 2006 at 3:04:05pm (UTC)"
// ...
log.Printf("Hello, %s!", "World")
// Sep 18, 2018 at 2:52:26pm (UTC) | Hello, World!