Das Protokollieren in einer Datei kann auf mehrere Arten erfolgen. Die 12-Faktor-App-Methode (nicht nur die 12-Faktor-App-Weg, sondern 12-Faktor-Apps machen dies auf diese Weise) wäre es, auf STDOUT und/oder STDERR zu loggen und dann zu leiten anderswo für die Bereitstellung. Dies macht auch die Entwicklung einfach. Wenn Sie Ihr Programm mit etwas wie Containern bereitstellen, protokollieren sie die STDOUT- und STDERR-Dateien des Containers zunächst in einer Datei.
Das Paket std lib log
bietet zwei Möglichkeiten, die Ausgabe in eine Datei zu ändern.
Ein Weg ist wie folgt:
log.SetOutput(<something that implements io.Writer, probably os.File>)
log.Println("some message")
Das andere ist:
logger := log.New(<something that implements io.Writer, probably os.File>, <a prefix String>, <some flag, see https://golang.org/pkg/log/#pkg-constants>)
logger.Println("some message")
Die zweite Option ist auch, wie Sie verschiedene Protokollebenen implementieren können (dh INFO, DEBUG, WARN, ERROR, usw.), indem jeder Level ein eigener Logger ist.
Allerdings bietet Ihnen logrus eine Menge davon, also ist das wahrscheinlich Ihre beste Wahl, wenn Sie nur schnell Logging implementiert haben möchten.