Ce face log.SetFlags
log.SetFlags setează antetul fiecărui mesaj pentru jurnalul implicit. Opțiunile se combină cu |: log.Ldate (2025/03/14), log.Ltime (10:30:00), log.Lmicroseconds (adaugă .123456), log.Lshortfile (main.go:12), log.Llongfile (calea completă), log.LUTC (ora UTC în loc de ora locală), log.Lmsgprefix (prefixul vine după antet, înaintea mesajului).
Valoarea implicită este log.LstdFlags (data și ora). log.SetFlags(0) elimină tot antetul, util când jurnalul ajunge în systemd sau Docker, care adaugă singure data.
Parametri
| Parametru | Descriere |
|---|---|
flag |
Combinația de opțiuni, de exemplu log.Ltime | log.Lshortfile. |
Ce returnează
Nimic. log.Flags() returnează valoarea curentă.
Exemple
Exemplul 1: Fișier și linie, fără dată
Lshortfile arată de unde a fost scris mesajul; data o lăsăm deoparte ca rezultatul să fie stabil.
package main
import (
"log"
"os"
)
func main() {
log.SetOutput(os.Stdout)
log.SetFlags(log.Lshortfile)
log.Println("încarc produsele")
verifica()
}
func verifica() {
log.Println("stoc verificat")
}
Rezultat
main.go:11: încarc produsele
main.go:16: stoc verificat
Exemplul 2: Combinații de opțiuni
package main
import "log"
func main() {
log.Println("implicit (LstdFlags)")
log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds | log.LUTC)
log.Println("cu microsecunde, în UTC")
log.SetFlags(log.Ltime | log.Lshortfile)
log.Println("ora și locul")
log.SetFlags(0)
log.Println("fără antet")
}
Rezultat posibil (diferă la fiecare rulare)
2025/03/14 12:30:00 implicit (LstdFlags)
2025/03/14 10:30:00.482913 cu microsecunde, în UTC
12:30:00 main.go:10: ora și locul
fără antet
Greșeli frecvente
- Folosești
log.Llongfileîn producție. Calea completă a fișierului sursă de pe calculatorul de build ajunge în fiecare rând. - Schimbi opțiunile jurnalului implicit dintr-o bibliotecă. Afectează tot programul; creează-ți propriul jurnal cu
log.New.
Comenzi înrudite
log.SetPrefix: Setează un text pus la începutul fiecărui rând din jurnalul implicit, de exemplu numele aplicației.log.SetOutput: Schimbă locul în care scrie jurnalul implicit: alt fișier, ieșirea standard, un buffer sau mai multe deodată.log.New: Creează un jurnal separat (*log.Logger), cu propria destinație, prefix și opțiuni.log.Println: Scrie un mesaj în jurnal, precedat de dată și oră; Println pune spații între valori, Print ca fmt.Print.